- From: Yves Lafon <ylafon@w3.org>
- Date: Wed, 3 Mar 2010 15:52:13 -0500 (EST)
- To: Julian Reschke <julian.reschke@gmx.de>
- cc: Mark Nottingham <mnot@mnot.net>, HTTP Working Group <ietf-http-wg@w3.org>
On Wed, 3 Mar 2010, Julian Reschke wrote: > On 03.03.2010 10:49, Yves Lafon wrote: >> On Wed, 3 Mar 2010, Mark Nottingham wrote: >> >>> This has been discussed on-list and in meetings sporadically, but I >>> don't think we've ever focused on it exclusively. >>> >>> <http://trac.tools.ietf.org/wg/httpbis/trac/ticket/147> >>> >>> >>> Current text at >>> <http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache-08#section-2.6>: >>> >>>> The selecting request-headers from two requests are defined to match >>>> if and only if the selecting request-headers in the first request can >>>> be transformed to the selecting request-headers in the second request >>>> by adding or removing linear white space [[anchor8: [ >>>> ref >>>> ]]] at places >>>> where this is allowed by the corresponding ABNF, and/or combining >>>> multiple message-header fields with the same field name following the >>>> rules about header fields in >>>> Section 3.2 of [Part1]. >>> >>> Proposed replacement: >>> >>> The selecting request-headers from two requests are defined to match >>> if and only if those in the first request can be transformed to those >>> in the >>> second request by applying any of the following: >>> - adding or removing whitespace, where allowed in the headers' ABNF >>> - combining multiple message-header fields with the same field name (see >>> Section 3.2 of [Part1]) >>> - canonicalising both headers' values in a way that is known to have >>> identical >>> semantics, according to the headers' specification (e.g., re-ordering >>> field values >>> when order is not significant; case-normalisation, where values are >>> defined to be >>> case-insensitive) >> >> Friendly amendment: s/Canonicalising/Normalizing/ > > This *almost* works for me: > > Section 2.6 would become: > > -- snip -- > When a cache receives a request that can be satisfied by a stored > response that has a Vary header field (Section 3.5), it MUST NOT use > that response unless all of the selecting request-headers nominated > by the Vary header match in both the original request (i.e., that > associated with the stored response), and the presented request. > > The selecting request-headers from two requests are defined to match > if and only if those in the first request can be transformed to those > in the second request by applying any of the following: > > o adding or removing whitespace, where allowed in the header's > syntax > > o combining multiple message-header fields with the same field name > (see Section 3.2 of [Part1]) > > o normalizing both header values in a way that is known to have > identical semantics, according to the header's specification > (e.g., re-ordering field values when order is not significant; > case-normalization, where values are defined to be case- > insensitive) > > If a header field is absent from a request, it can only match another > request if it is also absent there. > > A Vary header field-value of "*" always fails to match, and > subsequent requests to that resource can only be properly interpreted > by the origin server. > > The stored response with matching selecting request-headers is known > as the selected response. > > If no selected response is available, the cache MAY forward the > presented request to the origin server in a conditional request; see > Section 2.4. > -- snip -- > > Note: > > If a header field is absent from a request, it can only match another > request if it is also absent there. > > Is that still true? I don't think; maybe we can remove the sentence > completely? I don't remember where we left this one last time we discussed this, and I am wondering what caches are doing in this specific case. > > I would also add this to the Changes-from-2616 section (A.2) as: > > -- snip -- > Clarify that matching request headers allows header-specific > normalization. (Section 2.6) > -- snip -- > > (proposed draft patch attached to the ticket, see > <http://trac.tools.ietf.org/wg/httpbis/trac/attachment/ticket/147/i147.diff>) > > Best regards, Julian > -- Baroula que barouleras, au tiéu toujou t'entourneras. ~~Yves
Received on Wednesday, 3 March 2010 20:52:16 UTC