[WIP] new buffering and HTTP message representation
implementation for #596
It rewrites RequestState and ResponseState to reduce the number of states and hold a list of headers containing references to offfsets in the network stream (not slices of the buffer to avoid issues with mutable borrows).
It is now easier to go through the header list and change them, add more (deletion not implemented yet)
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.
Hi @Geal , what is your advancement about this? I will order it into the 0.14 milestone project, for convenience.
the architecture is done, it is missing header deletion (to avoid passing hop by hop headers between frontend and backend). It will need a lot of testing on real traffic before being production ready though
We've got to rebase this to see more clearly.
This is to be looked into, but we may want to implement HTTP2 beforehand, as is envisioned in the roadmap, before refactoring the state machine this much.
No, it's the other way: to implement http/2 you need an intermediate representation for the headers and a way to slice input buffers and transmit them between http 1 and 2. So that work was started to enable the http/2 implementation later. If you try to implement http/2 first you will soon be blocked wondering how to translate between versions, and you'll go back to this PR 😄
ping @Wonshtrum
relevant commit is b1c2ccc