Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should Semantics assume that field values have been coalesced or just unfolded? #116

Closed
royfielding opened this issue Jul 2, 2018 · 8 comments · Fixed by #350
Closed

Comments

@royfielding
Copy link
Member

It is hard to talk about header fields without also noting they might appear across multiple lines via repeated names or obs-fold lines. My goal has been to describe the coalescing of fields in Messaging and only deal with complete values in Semantics. However, I think only obs-fold is specific to HTTP/1.x.

For now, we have the following text (currently in crefs) in the "Field Values" section of Semantics:

This document assumes that any such obs-fold has been replaced with one or more SP octets prior to interpreting the field value, as described in (xref target="line.folding").

@mnot
Copy link
Member

mnot commented Jul 2, 2018

See also #111

@mnot
Copy link
Member

mnot commented Oct 9, 2018

I agree obs-fold is specific to 1.1.

@MikeBishop
Copy link
Contributor

IIRC, we encountered a bug during H2 development where folded headers were packaged up in HPACK, CRLF and all. However, I'm comfortable declaring that construction a bug unless we have evidence that it's in deployed HTTP/2 stacks.

@MikeBishop
Copy link
Contributor

MikeBishop commented Oct 10, 2018

Matthew was able to dig up the old e-mail; this happened, but several implementations aligned to disallow it, including the one known implementation that emitted it. I think we're fine to call it 1.1-only.

@mnot
Copy link
Member

mnot commented Jan 8, 2019

I think the cref'd text is good for inclusion. I'd also remove obs-fold from the ABNF in semantics; i.e., it should be processed in h1 specifically, so that at the semantic "layer", it doesn't appear.

Regarding coalesced values - ISTM that that we can; H1-messaging (and other versions, if they allow such serialisations) can say that you forward header fields without knowing anything about them, but when we deal with them at the semantic level, you only deal with the coalesced value. Doing that would probably also simplify #111.

@mnot mnot added the waiting label Feb 2, 2020
@mnot
Copy link
Member

mnot commented Feb 2, 2020

Waiting for #111.

@mnot
Copy link
Member

mnot commented Mar 20, 2020

#111 is done; unwaiting.

@mnot
Copy link
Member

mnot commented Mar 23, 2020

#111 took care of distinguishing between a field value and a field line value. As we found, there are still a few places where this distinction need to be made in semantics (e.g., regarding cookies).

Will do a PR to make adjustments to semantics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

3 participants