phphttphttp2http-1.1

PHP: Get HTTP Protocol Version (HTTP/1.1 vs HTTP/2)


Until now my php application assumed HTTP 1.1 everywhere. So I defined all headers like so:

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

But now my server also supports HTTP 2 and I want to update all header responses with the right HTTP status code.

How to I get the HTTP Protocol version of the http request?

(My webserver is nginx, but I guess it is irrelevant if I am using nginx or apache.)


Solution

  • The server protocol should be available through SERVER_PROTOCOL from the server environment, usually exposed through $_SERVER['SERVER_PROTOCOL'] inside your application.

    From phpinfo() under Apache 2.4:

    SERVER_PROTOCOL => HTTP/1.1