Как узнать, обслуживается ли мой сайт через HTTP или HTTP/2?
Есть ли команда или служба, которая сообщит мне, обслуживаются ли мои сайты по HTTP или HTTP/2.
Я нашел этот инструмент: HTTP/2 Test | Простой инструмент тестирования HTTP/2.0, но он только сообщает мне, поддерживает ли мой веб-сайт HTTP/2, но не использует ли он уже HTTP/2.
Это также расширение Chrome: HTTP/2 и индикатор SPDY, которое говорит мне, что HTTP/2 уже включен на моем сайте, но, насколько я знаю, моя версия Apache даже не поддерживает его.
Есть ли способ узнать наверняка? Спасибо!
Ответы
Ответ 1
Apache не должен его поддерживать. Расширение Chrome читает заголовки HTTP, чтобы определить это.
Другой метод - просто посмотреть вкладку сети> заголовки> заголовки ответов> источник просмотра в Chrome или Firefox. Там можно увидеть заголовки. Он должен читать "HTTP/2" или какой-то вид, который я не могу вспомнить прямо сейчас.
Самый простой: вы можете использовать curl -I <your site>
который поместит HTTP-ответ в первую строку.
HTTP/2.0 200
server:nginx
date:Fri, 29 Apr 2016 14:31:40 GMT
content-type:text/html; charset=utf-8
content-length:7629
last-modified:Thu, 07 Apr 2016 02:41:08 GMT
....
Ответ 2
Вы также можете попробовать --http2
или --http2-prior-knowledge
. Это заставит webiste использовать HTTP/2.0:
Из руководства по скручиванию:
--http2-prior-knowledge
(HTTP) Tells curl to issue its non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade. It requires
prior knowledge that the server supports HTTP/2 straight away. HTTPS requests will still do HTTP/2 the
standard way with negotiated protocol version in the TLS handshake.
--http2-prior-knowledge requires that the underlying libcurl was built to support HTTP/2. This option
overrides --http1.1 and -0, --http1.0 and --http2. Added in 7.49.0.
--http2
(HTTP) Tells curl to use HTTP version 2.
See also --no-alpn. --http2 requires that the underlying libcurl was built to support HTTP/2. This option
overrides --http1.1 and -0, --http1.0 and --http2-prior-knowledge. Added in 7.33.0.
Ответ 3
Для людей, использующих Nginx, вы можете просмотреть журнал доступа, который обычно находится в /var/log/nginx/access.log
и искать строки, такие как
167.220.232.9 - - [12/Feb/2018:15:09:04 +0800] "GET / HTTP/2.0" 200 2546 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
Ответ 4
Вот еще один способ, который может быть проще, если у вас нет готового доступа к командной строке и cURL, или вы перемещаетесь по нескольким слоям CDN (например, если ваш HTTP/2 предоставляется провайдером, таким как CloudFlare).
- Открыть Chrome Dev Tools (Ctrl-Shift-I)
- Откройте вкладку Сеть
- Если ваша страница уже загружена, вам может потребоваться обновить (Ctrl-R)
- Щелкните правой кнопкой мыши строку заголовка списка запросов (строка, помеченная как: Имя, Метод, Статус и т.д.)
- Выберите протокол из контекстного меню.
- Вам может понадобиться обновить (Ctrl-R), и вы увидите все используемые протоколы.
Если вы видите h2
, то поздравляем! Ваш сайт обслуживается по протоколу HTTP/2.