ietf-822
[Top] [All Lists]

Re: Interpretation of RFC 2047

2002-10-18 08:17:48

On Oct 17, 11:32am, Charles Lindsey wrote:
} Subject: Re: Interpretation of RFC 2047
}
} In <1021014180654(_dot_)ZM28416(_at_)candle(_dot_)brasslantern(_dot_)com> 
"Bart Schaefer" <schaefer(_at_)brasslantern(_dot_)com> writes:
} 
} >On Oct 14,  1:01pm, Charles Lindsey wrote:
} 
} >The user agent is not supposed to know.  The user agent is not supposed
} >to look for or apply encodings/decodings inside header fields for which
} >it does not know the semantics.  All fields for which the semantics are
} >unknown are to be treated as unstructured upon receipt.
} 
} Eh? Where does it say that unknown headers are to be treated as
} unstructured? If that were the case, things would be much simpler, but
} I don't think it is.

RFC 2822, 3.6.8. Optional fields:

   Fields may appear in messages that are otherwise unspecified in this
   standard.  They MUST conform to the syntax of an optional-field.
   This is a field name, made up of the printable US-ASCII characters
   except SP and colon, followed by a colon, followed by any text which
   conforms to unstructured.

   The field names of any optional-field MUST NOT be identical to any
   field name specified elsewhere in this standard.

   optional-field  =       field-name ":" unstructured CRLF

It's true that RFC 822 is not this explicit, but it's pretty clear that
any field that doesn't have a defined structure is unstructured; RFC 822
appendix D:

     field-body-contents =
                   <the ASCII characters making up the field-body, as
                    defined in the following sections, and consisting
                    of combinations of atom, quoted-string, and
                    specials tokens, or else consisting of texts>

} >If you know what a header means, you may parse it and act on it.  If you
} >don't know, you should ignore it completely (pass it through unchanged,
} >hide it from the user, whatever).
} 
} It is not a question of "acting on it". All I want is for it to be
} displayed (or displayable) correctly. Most usage of encoded-words is only
} intended for human consumption anyway.

You're confusing user interface with protocol.

In general, IETF standards don't restrict the behavior of UIs, they only
restrict the behavior of protocol engines.  (Some of the biggest arguments
in the process of producing 2822 involved cases where the distinction was
not clear -- but I don't think that's the case in this instance.)

So a user agent is "allowed" (because it is outside the scope of the
standard), for purposes of display, to treat any string, anywhere, that
begins with =? and ends with ?= as an RFC 2047 token, and decode it.

What the user agent is NOT allowed to do is, for example, when asked to
forward the message, decode and/or encode 2047 tokens in field bodies for
which it does not know the semantics.

<Prev in Thread] Current Thread [Next in Thread>