地址栏显示" https://mywebsite.com "并显示一个锁定图标(并单击显示它的AES-256),但是当我运行以下代码时,它始终打印"HTTP/1.1".
echo $_SERVER[ "SERVER_PROTOCOL" ];
Run Code Online (Sandbox Code Playgroud)
为什么不显示https?
Fil*_*tis 21
SERVER_PROTOCOL与页面的安全性无关,它报告所使用的连接是HTTP 1.0还是HTTP 1.1或HTTP 2.0:
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
HTTP/1.1是原始HTTP(HTTP/1.0)的修订版.在HTTP/1.0中,为每个资源请求建立到同一服务器的单独连接.HTTP/1.1可以在页面交付后多次重复使用连接来下载图像,脚本,样式表等.因此,由于TCP连接的建立带来了相当大的开销,因此HTTP/1.1通信经历较少的延迟.
虽然HTTP 2.0是下一代HTTP,它允许在一个HTTP 2.0连接内多路复用多个HTTP 1.1连接.
为了您的目的,检查是否设置了HTTPS服务器变量:
http://php.net/manual/en/reserved.variables.server.php
即类似的东西
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { ... }
Run Code Online (Sandbox Code Playgroud)