Supporting a newer L7 protocol, Traffic Server support supports HTTP/2 . Currently HTTP/2 is defined as http2 draft-16.
Current status
- Some patches are available on TS-2729
- Fundamental HTTP/2 frame handling
- Flow control
- Some error handlings
How to test
- Build ATS codes normally. you need neither any build option nor external HTTP/2 library.
- Configure settings to use https.
- Add settings to records.config to use http2.
CONFIG proxy.config.http2.enabled INT 1
- Access to ATS by HTTP/2 client.
TODO
- Refactoring
- HPACK encoder/decoder
- Around writing HTTP/2 frames
- Separate logic between connection level and stream level
- More debugging
- Write documents
- Add test tools for HPACK, HTTP/2 frames
- REPL tool to test behavior of HPACK encoder/decoder
- Enable it to load test cases from hpack-test-case
- Add HTTP/2 integration test code to new_tsqa
- REPL tool to test behavior of HPACK encoder/decoder
No plan
- Server Push This would probably require support for Link preload?
- Stream Priority
- Alternative Services
...
for client connections as defined by https://httpwg.org/specs/rfc7540.html
TODO
- Support HTTP/2 from ATS to origin. This is a current effort traffic by a github project. More contributors are welcome.