sslsplit
sslsplit copied to clipboard
HTTP/2 (full decoding)
Dependencies:
- #218 HTTP/2 (minimal)
Tasks:
- [ ] Implement demuxing streams it into separate request/response streams and calling the same HTTP callbacks as the HTTP/1.x protocol driver for logging and header manipulation; this requires parsing the stream framing protocol and decompressing compressed headers (consider library/libraries for some or all of this, but should have BSD or MIT license and be portable)
- [ ] Handle and decode Server Push for logging appropriately (not sure how yet; similar to WebSockets)
- [ ] Consider suppressing all except harmless HTTP/2 extensions because they may break protocol parsing
- [ ] Adjust logging for new HTTP/2 concepts; log system will need refactoring to deal with stream IDs and Server Push
- [ ] Test on different platforms and with different browsers/clients
Out of scope:
- Support for predecessor protocols like SPDY
- Spec compliant stream priority handling
- Opportunistic Security for HTTP/2 (RFC 8164)
References:
- https://en.wikipedia.org/wiki/HTTP/2
- https://tools.ietf.org/html/rfc7540
- https://github.com/nghttp2/nghttp2
- https://github.com/phluid61/mk-hpack