RFC 7233, "Hypertext Transfer Protocol (HTTP/1.1): Range Requests", June 2014Source of RFC: httpbis (app)
Errata ID: 4682
Publication Format(s) : TEXT
Reported By: Kannan Goundan
Date Reported: 2016-05-03
Rejected by: Alexey Melnikov
Date Rejected: 2017-02-23
Section 2.1 says:
byte-range-set= 1#( byte-range-spec / suffix-byte-range-spec )
It should say:
According to the "1#element" rule, the expansion would be: byte-range-set = ( byte-range-spec / suffix-byte-range-spec ) *( OWS "," OWS ( byte-range-spec / suffix-byte-range-spec ) ) But Appendix D has the definition: byte-range-set = *( "," OWS ) ( byte-range-spec / suffix-byte-range-spec ) *( OWS "," [ OWS ( byte-range-spec / suffix-byte-range-spec ) ] )
This is a followup to my original report: <http://www.rfc-editor.org/errata_search.php?rfc=7233&eid=4681>
My original report was incorrect because I didn't notice the difference between "1*element" and "1#element". Thanks to Julian Reschke for pointing this out to me.
After looking up the "1#element" rule <https://tools.ietf.org/html/rfc7230#section-7>, it looks like Section 2.1 and Appendix D are more similar, but not exactly equivalent.
The Appendix D version of the rule seems to allow extra commas and OWS.
I'm trying to write strict parsing code for this header and am not sure which definition to follow.
P.S. I hope I didn't screw up again. I apologize for wasting your time (again) if I did.
See HTTPBIS mailing list discussion.