- From: Mark Nottingham <mnot@mnot.net>
- Date: Fri, 12 Nov 2010 15:58:39 +1100
- To: Julian Reschke <julian.reschke@gmx.de>
- Cc: Adam Barth <ietf@adambarth.com>, httpbis <ietf-http-wg@w3.org>
I'm confused. I thought that we were going to talk about error handling in an appendix, but it appears you're starting to talk about it here.
On 10/11/2010, at 1:34 AM, Julian Reschke wrote:
> 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
>
--
Mark Nottingham http://www.mnot.net/
Received on Friday, 12 November 2010 04:59:13 UTC