PHP: Получить версию протокола HTTP (HTTP / 1.1 против HTTP / 2)

До сих пор мое php-приложение везде поддерживало HTTP 1.1. Итак, я определил все заголовки так:

header("HTTP/1.1 500 Internal Server Error");

Но теперь мой сервер также поддерживает HTTP 2, и я хочу обновить все ответы заголовков, указав правильный код состояния HTTP.

Как получить версию HTTP-протокола HTTP-запроса?

(Мой веб-сервер — nginx, но я думаю, что это не имеет значения, если я использую nginx или apache.)

2

Решение

Протокол сервера должен быть доступен через SERVER_PROTOCOL из серверной среды, обычно выставляется через $_SERVER['SERVER_PROTOCOL'] внутри вашего приложения.

От phpinfo() под Apache 2.4:

SERVER_PROTOCOL => HTTP/1.1
9

Другие решения

изменения /etc/nginx/factcgi_params:

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

Заголовок должен быть: —

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

По вопросам рекламы [email protected]