目錄
回复内容:
首頁 後端開發 php教程 PHP怎样处理HTTPS请求

PHP怎样处理HTTPS请求

Jun 06, 2016 pm 08:38 PM
https php

请问如何用PHP处理HTTPS的请求?
我想问的不是用curl发送请求,也不是问https的原理,我就是想了解浏览器发送HTTPS请求后PHP需要做哪些配置或者写哪些代码来处理这个请求,诸位可否有示例代码?
网上搜过了,不是curl发送https请求的例子,就是HTTPS原理的例子,但是原理我懂了可是不知道开始...
谢谢

回复内容:

请问如何用PHP处理HTTPS的请求?
我想问的不是用curl发送请求,也不是问https的原理,我就是想了解浏览器发送HTTPS请求后PHP需要做哪些配置或者写哪些代码来处理这个请求,诸位可否有示例代码?
网上搜过了,不是curl发送https请求的例子,就是HTTPS原理的例子,但是原理我懂了可是不知道开始...
谢谢

phphttps没有半毛钱关系,因为php是一种语言/脚本解释器,不是一种服务器

一个请求到达服务器,无论是http还是https,先经过web server,如apachenginx,由web server处理与客户端之间基于http/https协议的数据交互

根据一定规则(如扩展名)确定是否需要调用php来处理这个请求,调用的方式有很多种,比如模块方式、CGI方式、以及基于CGI的fastcgi/fpm方式,取决于web server的配置

调用结束后,php把要返回的数据吐出来给web server,再由web server封装成http/https协议格式,返回给客户端/浏览器

首先需要知道你是用apache还是nginx做服务器,真正的请求是服务器去解析的。在服务器配置后就会直接交给php处理了。没用服务器的话请见@mao童鞋的答案

<code>$context = stream_context_create(array('ssl' =&gt;array(
        'local_cert' =&gt;'./https.pem',
    )));

if(!$server = stream_socket_server("ssl://0.0.0.0:2016", $err_no, $err_msg, STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $context)){
   exit($err_msg);
}

while(1){
    $client = stream_socket_accept($server);
    if ($client) {
        stream_set_blocking($client, 0);
        $in = '';
        while($ret = fread($client, 8192)) $in .= $ret;
        $response = "HTTP/1.0 200 OK\r\n\r\nHello";
        fwrite($client, $response);
        fclose($client);
    }
}
</code>
登入後複製

PHP也能写Socket服务器的,上面是用PHP写的一个极其简陋的HTTPS的WebServer,本地测试通过,浏览器访问 https://127.0.0.1:2016测试

代码放到github中 https://github.com/walkor/webserver-example
里面还有个HTTP协议的WebServer,仍然是极其简陋的Demo,ab压测结果如下,单核2.4W QPS

<code>Concurrency Level:      100
Time taken for tests:   4.082 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      3100000 bytes
HTML transferred:       1200000 bytes
Requests per second:    24498.50 [#/sec] (mean)
Time per request:       4.082 [ms] (mean)
Time per request:       0.041 [ms] (mean, across all concurrent requests)
Transfer rate:          741.65 [Kbytes/sec] received
</code>
登入後複製

PHP写的更强悍的socket服务器见这里:
https://github.com/walkor/workerman

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles