问题

问题

问题

  • 我是否必须查看响应标头来X-Firefox-Spdy确定实际使用了哪种协议?
  • 我是否可以假设 Nginx 在实现完成后将报告 HTTP/2 状态代码,因为这是预期的行为,还是关于状态代码有一些我不知道的事情?

撰写此问题找到的信息:


调查及细节

我目前正在检查我的服务器设置,并且对我在浏览器的开发人员控制台中看到的 http 状态代码有点困惑。

我的服务器运行的是 Ubuntu 14.04,并安装了更新版本的 Nginx(电力供应协议)。Nginx 配置为使用 SPDY 和自签名证书。我认为 SPDY 配置正确,因为 Qualys SSL Labs 测试报告称服务器提供 SPDY 3.1(当然还有大量的浏览器插件),但这是否HTTP/1.1 200正确?

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

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,也不知道在源代码中要查找什么,但我的猜测是,即使使用HTTP/1.1SPDY,HTTP/2 之前的 Nginx 也只会报告状态代码,而其他软件(如 GSE)的行为可能会有所不同。

相关内容