- From: Max Bruce <max.bruce12@gmail.com>
- Date: Sun, 5 Apr 2015 13:08:28 -0700
- To: Willy Tarreau <w@1wt.eu>
- Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
- Message-ID: <CABb0SYR0wV1U5i2n=PbZd+BFTBntJFvzFD0DPPRVHXyJP=Oyqg@mail.gmail.com>
The way HTTP works though, we don't need streams in such a conventional and TCP-like way. We only need multiplexed packets to carry data over, so just associate request/response pairs with an ID, and allow server push via server sending the request path in a header too. Why do we even need a frame structure? It's unnecessary overhead. Same with the virtual streams. On Sun, Apr 5, 2015 at 11:57 AM, Willy Tarreau <w@1wt.eu> wrote: > On Sun, Apr 05, 2015 at 11:45:53AM -0700, Max Bruce wrote: > > My thoughts is that you just don't use so much overhead. You don't get > rid > > of stream IDs, you just don't need so much complex things surrounding it. > > Example: You append a header to HTTP/1.1 request, with a response ID, > > server responds with it. Server can push responses by sending a unsent > ID & > > request path in a header. > > You still need the stream IDs in the frames themselves so that you know > which stream each frame belongs to. > > Multiplexed systems always look simple at first, until you start to > implement them, cover the corner cases (eg: who closes first etc) and > you finally realize once everything is done how much your system looks > like tcp... > > There was an elegant (in my opinion) simplification in H/2 compared to > other systems, the stream IDs are always incremented until the largest > encodable ID is reached, which is where a new connection must be used. > I find this elegant because you don't need to keep track of IDs in use > vs available ones and it really simplifies a number of things (eg: no > risk to have late frames from an old stream using the same ID). > > It doesn't please me either to have to implement such a complex system > but I am absolutely convinced that it can hardly be simplified further > as long as we want non-blocking, multiplexed streams. I have already > implemented multiplexed streams in the past for some projects, and it > resulted in almost the same design (but more complex). > > Willy > >
Received on Sunday, 5 April 2015 20:08:57 UTC