Subject: p4-conditional proofreading

From: Anthony Bryan <[email-masked]>
Date: Fri, 29 Jan 2010 18:44:42 -0500

Hi,

I don't know if this section is consistent with the other parts of the
spec (I'm still reading my way through), but these sentence fragments
strike me as slightly odd.

You may want to insert "they" (or "clients" or another suitable word)?

OLD

HTTP/1.1 clients:

    * If an entity tag has been provided by the origin server, MUST
use that entity tag in any cache-conditional request (using If-Match
or If-None-Match).
    * If only a Last-Modified value has been provided by the origin
server, SHOULD use that value in non-subrange cache-conditional
requests (using If-Modified-Since).
    * If only a Last-Modified value has been provided by an HTTP/1.0
origin server, MAY use that value in subrange cache-conditional
requests (using If-Unmodified-Since:). The user agent SHOULD provide a
way to disable this, in case of difficulty.
    * If both an entity tag and a Last-Modified value have been
provided by the origin server, SHOULD use both validators in
cache-conditional requests. This allows both HTTP/1.0 and HTTP/1.1
caches to respond appropriately.

NEW

HTTP/1.1 clients:

    * If an entity tag has been provided by the origin server, they
MUST use that entity tag in any cache-conditional request (using
If-Match or If-None-Match).
    * If only a Last-Modified value has been provided by the origin
server, they SHOULD use that value in non-subrange cache-conditional
requests (using If-Modified-Since).
    * If only a Last-Modified value has been provided by an HTTP/1.0
origin server, they MAY use that value in subrange cache-conditional
requests (using If-Unmodified-Since:). The user agent SHOULD provide a
way to disable this, in case of difficulty.
    * If both an entity tag and a Last-Modified value have been
provided by the origin server, they SHOULD use both validators in
cache-conditional requests. This allows both HTTP/1.0 and HTTP/1.1
caches to respond appropriately.

-- 
(( Anthony Bryan ... Metalink [ http://www.metalinker.org ]
  )) Easier, More Reliable, Self Healing Downloads

---

From: Julian Reschke <[email-masked]>
Date: Sun, 31 Jan 2010 20:26:40 +0100

Anthony Bryan wrote:
> ...

Not sure; the text has been that way for a *long* time, so unless 
there's something that's wrong or at least misleading, I don't think it 
needs to change.

Best regards, Julian

PS: But, again, thanks for the proofreading!

---

From: Barry Leiba <[email-masked]>
Date: Sun, 31 Jan 2010 16:38:28 -0500

> Not sure; the text has been that way for a *long* time, so unless there's
> something that's wrong or at least misleading, I don't think it needs to
> change.

Oh, my, I certainly think it's wrong and unclear, and it needs to be
changed (and I don't think "they" is sufficient).  I also can't
imagine that the RFC Editor would let it pass.  Each normative clause
has to have a subject, and it's confusing the have the subject sort of
presented at the beginning of the list.  That's not good English.

For example:

     HTTP/1.1 clients:

This asks people to mentally insert "HTTP/1.1 clients" where there's a
missing subject.  Ah, I see, there's a missing subject before MUST, so
that's where I need to stick it.  No, that's too much to ask of the
reader.  That it's been that way for a long time doesn't mean that
it's right, only that no one has complained.  It's only been reviewed
by people who knew what you meant already, so they breezed through it.

Please change the list to look something like this:

     For HTTP/1.1 clients:

     * If an entity tag has been provided by the origin server, HTTP/1.1 clients
     MUST use that entity tag in any cache-conditional request (using If-Match
     or If-None-Match).

That really isn't a hard change to make, it will avoid any
misunderstandings, and it will avoid interaction on this with the RFC
Editor when the time comes.

Barry