Как указано в HTTP-коннекторе :
HTTP / 2 обеспечивает поддержку TLS (h2), не-TLS через обновление HTTP (h2c) и прямой HTTP/ 2 (h2c) соединения.Чтобы включить поддержку HTTP / 2 для коннектора HTTP, следующий элемент UpgradeProtocol должен быть вложен в Connector с атрибутом className , равным org.apache.coyote.http2.Http2Protocol
.
Это говорит о том, что TLS не является обязательным требованием.Вопрос все еще в том, поддерживает ли ваш браузер обновление h2c
.
Используя Firefox, нажмите (F12), чтобы открыть инструменты разработчика, перейдите к Сетевой анализ .Там вы видите таблицу, показывающую несколько атрибутов на запрос.Если он отсутствует, добавьте столбец Protocol , в котором указывается, используется ли HTTP / 1, h2c или любой другой протокол для каждого запроса.Chrome также предоставляет информацию о протоколе аналогичным образом:
Просто щелкните правой кнопкой мыши столбец в разделе инструментов разработчика Netowrk и вы получите обзор всех доступных столбцов:
Другой альтернативой отладочному протоколу, используемому клиентами, является логирование доступа .Просто создайте context.xhtml
в веб-приложении ROOT
по умолчанию в \apache-tomcat\webapps\ROOT\META-INF\
с таким содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"/>
</Context>
После перезапуска Tomcat и выполнения некоторых запросов вы найдете \apache-tomcat\logs\localhost_access_log.2019-03-12.txt
, в котором точно указан протоколиспользуется для каждого запроса:
... - - [12/Mar/2019...] "GET / HTTP/1.1" 200 11488
... - - [12/Mar/2019...] "GET / HTTP/1.1" 200 11488
... - - [12/Mar/2019...] "GET / HTTP/2.0" 200 11468
В моем случае оба первых запроса были выполнены с использованием Chrome и Firefox, третий запрос был выполнен с помощью команды curl -v --http2 localhost:8080
, которую вы написали в своем другом ответе.