Lawrence Moorehead created TIKA-4679:
----------------------------------------
Summary: Tika Server HTTP2 Support
Key: TIKA-4679
URL: https://issues.apache.org/jira/browse/TIKA-4679
Project: Tika
Issue Type: Improvement
Components: server
Reporter: Lawrence Moorehead
It would be helpful to have HTTP2 support (particularly clear text 'h2c') for
Tika Server.
The main motivation is that Google Cloud Run limits request sizes to 32 mb on
HTTP1.1, but has no hard cap with HTTP2. (Containers inside Google Cloud Run
run without HTTPS.)
The CXF documentation is here for reference:
[https://cwiki.apache.org/confluence/display/CXF20DOC/Jetty+Configuration#JettyConfiguration-jetty_http2HTTP/2support]
The main change needed is adding the dependencies that the underlying Jetty
server needs for http2, {{http2-server}} and {{{}jetty-alpn-java-server{}}}, to
{{{}tika-server-core{}}}.
The documentation also says there's an {{HttpServerEngineSupport#ENABLE_HTTP2}}
property that could be used to control if it's enabled, but it seems to be
enabled by default already and I'm not sure it's necessary for users to be able
to explicitly disable http2 support.
I made a basic smoke test for http2 support here for reference (although this
doesn't include the alpn library that seems to be necessary for https support):
[https://github.com/elemdisc/tika/pull/1/changes/5b467d1636a123d740ccc2e8d37de8c042959bef]
You can also check http2 connections with curl:
{code:java}
curl --http2-prior-knowledge -v http://localhost:9998/
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)