- From: Kari Hurtta <hurtta-ietf@elmme-mailer.org>
- Date: Mon, 2 Jul 2018 22:08:55 +0300 (EEST)
- To: HTTP Working Group <ietf-http-wg@w3.org>
- CC: Mark Nottingham <mnot@mnot.net>, Poul-Henning Kamp <phk@varnish-cache.org>, Kari Hurtta <hurtta-ietf@elmme-mailer.org>
Structured Headers for HTTP
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07
4.2. Parsing HTTP/1 Header Fields into Structured Headers
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2
| If parsing fails - including when calling another algorithm - the
| entire header field's value MUST be discarded. This is intentionally
| strict, to improve interoperability and safety, and specifications
| referencing this document cannot loosen this requirement.
|
| Note that this has the effect of discarding any header field with
| non-ASCII characters in input_string.
But parsing algorith seems missing text:
If non-ASCII characters seen, fail parsing.
All algrithm have text
"Given an ASCII string input_string"
so they do not apply situation when there is non-ASCII characters.
4.2. Parsing HTTP/1 Header Fields into Structured Headers
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2
| Given an ASCII string input_string that represents the chosen
| header's field-value, and header_type, one of "dictionary", "list",
| "param-list", or "item", return the parsed header value.
4.2.1. Parsing a Dictionary from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.1
| Given an ASCII string input_string, return a mapping of (identifier,
| item). input_string is modified to remove the parsed value.
4.2.2. Parsing a List from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.2
| Given an ASCII string input_string, return a list of items.
| input_string is modified to remove the parsed value.
4.2.3. Parsing a Parameterised List from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.3
| Given an ASCII string input_string, return a list of parameterised
| identifiers. input_string is modified to remove the parsed value.
4.2.4. Parsing a Parameterised Identifier from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.4
| Given an ASCII string input_string, return a identifier with an
| mapping of parameters. input_string is modified to remove the parsed
| value.
4.2.5. Parsing an Item from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.5
| Given an ASCII string input_string, return an item. input_string is
| modified to remove the parsed value.
4.2.6. Parsing a Number from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.6
| NOTE: This algorithm parses both Integers Section 3.5 and Floats
| Section 3.6, and returns the corresponding structure.
4.2.6 seems to have exception, because it does not limit itself to
"Given an ASCII string input_string" (but referring
4.2. Parsing HTTP/1 Header Fields into Structured Headers
limits itself to "Given an ASCII string input_string" ).
4.2.7. Parsing a String from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.7
| Given an ASCII string input_string, return an unquoted string.
| input_string is modified to remove the parsed value.
4.2.8. Parsing an Identifier from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.8
| Given an ASCII string input_string, return a identifier. input_string
| is modified to remove the parsed value.
4.2.9. Parsing Binary Content from Text
https://tools.ietf.org/html/draft-ietf-httpbis-header-structure-07#section-4.2.9
| Given an ASCII string input_string, return binary content.
| input_string is modified to remove the parsed value.
So there seems to missing top level algorithm, which is
Given an string input_string, return parsed context.
1. Check input_string character values.
1. If all characters are on range %x00-%x7f,
let output be the result of
Parsing HTTP/1 Header Fields into Structured Headers
(Section 4.2)
2. Otherwise, fail parsing.
/ Kari Hurtta
Received on Monday, 2 July 2018 19:09:28 UTC