- From: Mike Belshe <mike@belshe.com>
- Date: Thu, 2 Aug 2012 00:59:08 -0700
- To: James M Snell <jasnell@gmail.com>
- Cc: ietf-http-wg@w3.org
- Message-ID: <CABaLYCv7U7iLBu5+8Nb9Wa1VeQguoMLJw4VOCbDBQK3WoE-sFg@mail.gmail.com>
On Wed, Aug 1, 2012 at 10:51 PM, James M Snell <jasnell@gmail.com> wrote: > > On Aug 1, 2012 8:30 PM, "Mike Belshe" <mike@ <mike@belshe.com>belshe.com<mike@belshe.com>> > wrote: > > > > A couple of thoughts: > > > > * Thanks for writing up! > > > > * I don't think we need utf-8 encoded headers. Not sure how you'd pass > them off to HTTP anyway? > > > > The hand off to http 1.1 could be problematic, yes and I'm not 100% sold > on the utf-8 thing yet either. It's not an impossible problem tho and > shouldn't be too much of a challenge since most of the existing header > value definitions would likely not be modified... that is, just because > utf-8 is allowed in general doesn't mean that the existing value > definitions would all automatically be changed to allow for all possible > utf-8 characters. > I just don't see any problem being solved by adding this? If there is no benefit, we should not do it, right? > > * The codepages seem like complexity, but I'm not sure the benefit. I > would remove them. > > > > The code pages are specifically *because* of the http 1.1 handoff and the > need to continue supporting extensibility of headers. If an intermediary > happens across a code page zero header that it does not understand, and > therefore cannot translate to an appropriate http 1.1 style header, a > protocol error can be returned. > Why would there be a code page zero header that it doesn't understand? We don't want a registry here which changes over time - those are nightmares to maintain. However, a static translation could work, which is what I thought you had with the known headers and the extensible headers. The code pages aren't necessary to make this work - and seem to just add unnecessary partitioning. > > * I would remove the flags too - per header flags - do we really need > it? I'd remove it without a very clear use case. > > > > The immediate use cases are documented within the draft already: binary > header values and multiple values. > One was for utf8, which I think we could nix. I'm not sure why we need the binary/multivalue flags - what feature is this for? I don't see why we'd want this - its not like you can pass binary data up to HTTP anyway? > > * I know that 32bits seems like a lot. Defining length fields has two > routes: fixed length or variable length. I like the fixed length because > I believe they are simpler. However, the price of that simplicity is that > you've got limits. Everyone hates limits :-) In your proposal you whacked > the number of headers to 8 bits, or 256 headers. While I agree this is an > edge, I don't see a reason why it should be against the rules to have more. > Same for the length of a header value - you've used 16 bits (64KB). While > this seems massive by today's standards, in 10 years maybe 1MB cookies are > the norm. I don't know, but I'd hate to have the limit. So.... this > leaves us thinking that maybe we should use variable length encoding. > Personally, I think the fixed length simplicity is worth it. But this is > subjective, of course. Just use 32bits everywhere - it works well and you > won't notice the perf difference at all (I measured :-) > > > > > > If you need more than 256 headers, use multiple HEADERS frames. There is > no limit to the number of HEADERS frames you can send so that should cover > your edge case. > > I can live with that; there might be a sentinel issue here - when did you get the last set of headers. > And I would argue that anyone who is using header values longer than > max(int16) Is Doing It Wrong. > I disagree. If you had a 1Gbps line to your phone and a 1Tbps line to your house, a 100KB cookie might be just great... we have to design this for the future. > Variable length encoding would be a mistake because it's simply not > necessary. > I don't like it either. But compressing the 32bits to 16bits is a poor trade. Just make it work. This level of compression won't have an impact on performance, but will have an impact on how the protocol evolves. Mike - James > > > > > > > > > On Wed, Aug 1, 2012 at 5:37 PM, James M Snell <jasnell<jasnell@gmail.com> > @ <jasnell@gmail.com>gmail.com <jasnell@gmail.com>> wrote: > >> > >> I have submitted an I-D describing the alternative header encoding for > SPDY that I discussed previously. Should be pretty self-explanatory and > there are plenty of examples given throughout. I know it still has yet to > be decided whether SPDY will be the starting point for the HTTP/2.0 effort, > but I wanted to make this available for discussion. > >> > >> http <http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt>://<http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt> > www.ietf.org <http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt>/<http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt> > id <http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt>/draft-<http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt> > snell <http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt>-<http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt> > httpbis <http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt>-<http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt> > bohe <http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt>-00.<http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt> > txt <http://www.ietf.org/id/draft-snell-httpbis-bohe-00.txt> > >> http <http://tools.ietf.org/html/draft-snell-httpbis-bohe-00>://<http://tools.ietf.org/html/draft-snell-httpbis-bohe-00> > tools.ietf.org <http://tools.ietf.org/html/draft-snell-httpbis-bohe-00>/<http://tools.ietf.org/html/draft-snell-httpbis-bohe-00> > html <http://tools.ietf.org/html/draft-snell-httpbis-bohe-00>/draft-<http://tools.ietf.org/html/draft-snell-httpbis-bohe-00> > snell <http://tools.ietf.org/html/draft-snell-httpbis-bohe-00>-<http://tools.ietf.org/html/draft-snell-httpbis-bohe-00> > httpbis <http://tools.ietf.org/html/draft-snell-httpbis-bohe-00>-<http://tools.ietf.org/html/draft-snell-httpbis-bohe-00> > bohe <http://tools.ietf.org/html/draft-snell-httpbis-bohe-00>-00<http://tools.ietf.org/html/draft-snell-httpbis-bohe-00> > >> > >> - James > >> > > >
Received on Thursday, 2 August 2012 07:59:37 UTC