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)

Reply via email to