PHP:获取HTTP协议版本(HTTP / 1.1与HTTP / 2)

时间:2016-01-11 09:51:09

标签: php http http2 http-1.1

到目前为止,我的php应用程序假定HTTP 1.1无处不在。所以我定义了所有标题:

invokedynamic

但现在我的服务器也支持HTTP 2,我想用正确的HTTP状态代码更新所有标头响应。

如何获取http请求的HTTP协议版本?

(我的网络服务器是nginx,但我想如果我使用的是nginx或apache则无关紧要。)

2 个答案:

答案 0 :(得分:9)

服务器协议应该可以从服务器环境通过SERVER_PROTOCOL获得,通常通过应用程序内的$_SERVER['SERVER_PROTOCOL']公开。

来自Apache 2.4下的phpinfo()

SERVER_PROTOCOL => HTTP/1.1

答案 1 :(得分:0)

更改/etc/nginx/factcgi_params:

#fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  SERVER_PROTOCOL    HTTP/2.0;

标题应为: -

header($_SERVER['SERVER_PROTOCOL'].'404 Not Found');