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 Line Folding get replaced by spaces? #68

Closed
spease opened this issue Feb 26, 2020 · 2 comments
Closed

Should Line Folding get replaced by spaces? #68

spease opened this issue Feb 26, 2020 · 2 comments

Comments

@spease
Copy link

spease commented Feb 26, 2020

Noticed this in RFC-7230:

A user agent that receives an obs-fold in a response message that is
not within a message/http container MUST replace each received
obs-fold with one or more SP octets prior to interpreting the field
value.

I think currently httparse will just reject a line fold. This paragraph seems to suggest it should reinterpret it with spaces. Is this interpretation correct?

I am running into this problem (and an invalid SOH character) with an internal server.

Thanks.

@seanmonstar
Copy link
Owner

Yes, it "should" handle line folds. I've purposefully left it out for a few reasons:

  • It's very very rare.
  • It's deprecated, so new implementations should NEVER write it, and old ones should upgrade.
  • Because of those, I didn't want the performance cost or code complexity of supporting it.

@tari
Copy link

tari commented Sep 10, 2021

I've encountered this problem while working on a WARC parser, where that format specifies definitions compatible with RFC2616. There's a WARC proposal to forbid implementers of a future version from writing folded lines, but readers would still need to be able to handle the old version for backwards compatibility.


I appreciate the complexity of supporting some of the weird corners of header syntax, but it's a shame if httparse never supports those since it means potential users will have to roll their own parsers if that functionality is important. If this effectively means that the library is designed for server use only that would be reasonable, but it would be good to document that limitation.

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

No branches or pull requests

3 participants