- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Tue, 09 Nov 2010 15:34:06 +0100
- To: Mark Nottingham <mnot@mnot.net>
- CC: Adam Barth <ietf@adambarth.com>, httpbis <ietf-http-wg@w3.org>
On 09.11.2010 03:13, Mark Nottingham wrote:
> My inclination here is to (as with the others) punt the issue of actually defining 'invalid' in the 'core' specification; it can be either an appendix or a separate document.
>
> However, I'm wondering if we can at least identify those places where errors may occur consistently; e.g., by saying things like:
>
> "Header values with multiple instances are considered invalid."
> "Header values that do not match the ABNF are considered invalid."
> "..."
>
> and then something like
>
> "A header value that is considered invalid MAY be ignored, or MAY have error handling algorithms applied to attempt to recover the intent of the message."
>
> Thoughts?
Here's a rough proposal
(<http://trac.tools.ietf.org/wg/httpbis/trac/attachment/ticket/259/i259.diff>)
how this could look like:
-- snip --
5. Parsing
This document does not require any specific handling of invalid
header field values. With this in mind, the text below describes a
simple strategy for parsing the header field and detecting problems
in general, or in specific parameters.
5.1. Combine Multiple Instances of Content-Disposition
If the HTTP message contains multiple instances of the Content-
Disposition header field, combine all field values into a single one
as specified in Section 4.2 of [RFC2616].
5.2. Parsing for Disposition Type and Parameters
Using the simplified grammar below:
field-value = disp-type *( ";" param )
disp-type = token
param = token "=" value
...parse the field value into a disp-type (disposition type) and a
sequence of parameters (pairs of name (token) and value).
If the field value does not conform to the grammar (such as when not
exactly one disposition type is specified), ignore the whole header
field.
5.3. Checking Cardinality Constraints
If the parameter sequence contains multiple instances of the same
parameter name, ignore the whole header field.
5.4. Post-Process Parameter Values
For each parameter, post-process the associated value part according
to the grammar:
o According to Section 3.2.1 of [RFC5987] for parameters using the
RFC 5987 syntax (such as "filename*"). If this fails, just ignore
this parameter.
o According to the grammar for quoted-string (Section 2.2 of
[RFC2616]) for values starting with a double quote character (").
o Verbatim otherwise.
Note that this step starts with an octet sequence obtained from the
HTTP message, and results in a sequence of Unicode characters.
-- snip --
Best regards, Julian
Received on Tuesday, 9 November 2010 14:34:46 UTC