Поддержка Tomcat для HTTP / 2.0?

кто-нибудь знает, какая самая низкая версия Tomcat поддерживает HTTP/2.0? Я искал везде на их сайте, и я не могу найти никаких деталей относительно этого.

3 ответов


Я-разработчик HTTP/2 в Jetty, и я наблюдаю за другими проектами, реализующими HTTP/2.

У кота Марка Томаса описанная поддержка HTTP / 2 для Tomcat 9.

Обновление Января 2017: Tomcat 8.5 поддерживает HTTP / 2 см. @joe-aldrich answer https://stackoverflow.com/a/37889873/2027465

учитывая, что сервлет 4.0 будет иметь в качестве целевой поддержки HTTP / 2, и что поддержка HTTP/2 требует поддержки ALPN в JDK (в котором я также участвую), и что поддержка ALPN в JDK запланирована для JDK 9, вероятно, пройдет много времени, прежде чем все это материализуется.

однако имейте в виду, что другие контейнеры сервлетов уже предоставляют поддержку HTTP/2.

причал 9.3.0 имеет полную, надежную, поддержка HTTP/2 клиент и сервер. Мы запускаем HTTP / 2 на нашем собственном веб-сайте уже много месяцев, и мы рассматриваем производство поддержки HTTP / 2 готовый. Интерфейсы HTTP/2 Push API Jetty рассматриваются для включения в Servlet 4.0. HTTP / 2 Push уже доступен для приложений, развернутых на причале прозрачным способом (через фильтр сервлетов).

откат также имеет реализацию для HTTP/2.

Нетти также имеет один, но он не основан на API сервлета.


Tomcat 8.5 был выпущен с функциями, перенесенными из Tomcat 9, и включает поддержку HTTP/2.


последняя версия Tomcat (версия 9) полностью поддерживает HTTP / 2. Однако, поскольку все основные браузеры реализуют только HTTP / 2 через TLS вам нужно будет настроить Tomcat, чтобы разрешить это. Эта статья объясняет конфигурация TLS в Tomcat, но вот в резюме.

открыть conf/server.xml file и внесите следующие изменения в конфигурацию.

<Connector port="8443"
  protocol="org.apache.coyote.http11.Http11AprProtocol"
  maxThreads="150" SSLEnabled="true">
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
    <SSLHostConfig honorCipherOrder="false">
        <Certificate certificateKeyFile="conf/ca.key"
          certificateFile="conf/ca.crt"/>
    </SSLHostConfig>
</Connector>