Nginx使用SPDY(3.1)报告HTTP / 1.1状态代码是否正确?

问题

  • 我是否必须查看诸如X-Firefox-Spdy类的响应标题来确定实际使用的协议?
  • 我可以假设一旦实现完成后,Nginx会报告HTTP / 2状态代码,因为这是预期的行为,或者是有一些状态代码我不知道?

通过撰写这个问题find的信息:

  • Nginx忽略客户端的HTTP 1.0请求,并通过HTTP 1.1进行响应
  • 启用S​​PDY的Apache显示HTTP / 1.1而不是2.0

调查和细节

我目前正在检查我的服务器设置,我对我在浏览器的开发者控制台中看到的http状态码感到困惑。

我的服务器运行带有更新版本的Nginx( PPA )的Ubuntu 14.04。 Nginxconfiguration为使用SPDY和自签名证书。 由于Qualys SSL Labstesting报告服务器提供了SPDY 3.1(当然还有大量的浏览器插件),但是HTTP/1.1 200是否正确,我认为SPDYconfiguration正确?

这是来自我的服务器的完整请求:

 Request-URL: https://myserver/lib/dojo/something.js?123456789 Request-Methode: GET Status-Code: HTTP/1.1 200 OK Request-Header 13:50:30.000 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0 Referer: https://myserver/index.php Pragma: no-cache Host: myserver DNT: 1 Connection: keep-alive Cache-Control: no-cache Accept-Language: de-DE,en-US;q=0.8,de;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Accept: */* Sent Cookie -xxx- Response-Header Δ1ms X-Firefox-Spdy: 3.1 Strict-Transport-Security: max-age=15768000; includeSubDomains Server: nginx/1.9.3 Last-Modified: Tue, 08 Sep 2015 08:46:10 GMT Expires: Thu, 31 Dec 2037 23:55:55 GMT Etag: "-xxx-" Date: Sat, 12 Sep 2015 11:50:30 GMT Content-Type: application/javascript Content-Length: 435035 Cache-Control: max-age=315360000 Accept-Ranges: bytes 

这是一个外部资产报告HTTP/2.0 200的请求:

 Request-URL: https://fonts.googleapis.com/css?family=Ubuntu Request-Methode: GET Status-Code: HTTP/2.0 200 OK Request-Header 13:50:31.000 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0 Referer: https://myserver/index.php Pragma: no-cache Host: fonts.googleapis.com DNT: 1 Connection: keep-alive Cache-Control: no-cache Accept-Language: de-DE,en-US;q=0.8,de;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Accept: text/css,*/*;q=0.1 Response-Header Δ87ms X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN X-Firefox-Spdy: h2 X-Content-Type-Options: nosniff Timing-Allow-Origin: * Server: GSE Expires: Sat, 12 Sep 2015 11:50:31 GMT Date: Sat, 12 Sep 2015 11:50:31 GMT Content-Type: text/css Content-Length: 308 Content-Encoding: gzip Cache-Control: private, max-age=86400 alternate-protocol: 443:quic,p=1 Alt-Svc: quic=":443"; p="1"; ma=604800 access-control-allow-origin: * 

我读了这个声明NGINX计划如何支持HTTP / 2 ,这帮助我理解了为什么我仍然可以看到HTTP / 1.1应用程序的请求。 然而,我并没有自己编译Nginx的补丁,我不知道在源代码中寻找什么,但我的猜测是,Nginx pre-HTTP / 2只是报告HTTP/1.1状态代码,即使它使用SPDY while其他软件(如GSE)可能会有不同的performance。