PHP怎樣處理HTTPS請求

來源:互聯網
上載者:User
請問如何用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童鞋的答案

$context = stream_context_create(array('ssl' =>array(        'local_cert' =>'./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);    }}

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

Concurrency Level:      100Time taken for tests:   4.082 secondsComplete requests:      100000Failed requests:        0Write errors:           0Total transferred:      3100000 bytesHTML transferred:       1200000 bytesRequests 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

PHP寫的更強悍的socket伺服器見這裡:
https://github.com/walkor/workerman

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.