sozu icon indicating copy to clipboard operation
sozu copied to clipboard

[WIP] new buffering and HTTP message representation

Open Geal opened this issue 4 years ago • 4 comments

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)

Geal avatar Sep 01 '21 12:09 Geal

CLA assistant check
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.

CLAassistant avatar Sep 01 '21 12:09 CLAassistant

Hi @Geal , what is your advancement about this? I will order it into the 0.14 milestone project, for convenience.

Keksoj avatar Dec 27 '21 17:12 Keksoj

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

Geal avatar Jan 02 '22 21:01 Geal

We've got to rebase this to see more clearly.

Keksoj avatar Aug 18 '22 07:08 Keksoj

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.

Keksoj avatar Oct 31 '22 10:10 Keksoj

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 😄

Geal avatar Nov 01 '22 08:11 Geal

ping @Wonshtrum

Keksoj avatar Nov 01 '22 19:11 Keksoj

relevant commit is b1c2ccc

Keksoj avatar Nov 23 '22 17:11 Keksoj