Правильно ли, что Nginx сообщает коды состояния HTTP/1.1 с помощью SPDY (3.1)?

Вопросы

  • Должен ли я смотреть на заголовки ответа, как X-Firefox-Spdy определить, какой протокол был фактически использован?
  • Могу ли я предположить, что Nginx сообщит коды состояния HTTP/2, как только реализация будет завершена, потому что это ожидаемое поведение, или есть что-то в кодах состояния, которых я не знаю?

Информация, найденная при составлении этого вопроса:


Расследование и детали

В настоящее время я проверяю настройки своего сервера, и меня немного смущают коды состояния http, которые я вижу в консоли разработчика моего браузера.

Мой сервер работает под управлением Ubuntu 14.04 с обновленной версией Nginx ( PPA). 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 с патчем и не знал, что искать в источнике, но я предполагаю, что Nginx pre-HTTP/2 просто сообщает HTTP/1.1 коды состояния, даже если он использует SPDY, тогда как другое программное обеспечение (например, GSE) может вести себя по-другому.

0 ответов

Другие вопросы по тегам