发布于 1970-01-01 08:00
  • 3 个回答
    • 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协议格式,返回给客户端/浏览器

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

      2022-12-01 22:14 回答
    • $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:      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
      

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

      2022-12-01 22:14 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有