sslsplit icon indicating copy to clipboard operation
sslsplit copied to clipboard

HTTP/2 (full decoding)

Open droe opened this issue 7 years ago • 0 comments

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

droe avatar Sep 04 '18 01:09 droe