- From: Lisa Dusseault <lisa@osafoundation.org>
- Date: Mon, 17 Mar 2008 14:57:07 -0700
- To: Mark Nottingham <mnot@mnot.net>
- Cc: Robert Siemer <Robert.Siemer-httpwg@backsla.sh>, Werner Baumann <werner.baumann@onlinehome.de>, ietf-http-wg@w3.org
Mark said he'd only seen one proposal on this issue. There are so
many ways this could be resolved, I'm following the advice of my
Systems Design professor who said "You have no idea if you have a
good solution, if you have only thought of one solution." How about
these:
Strawman proposal "Document Apache": Weak ETags could be documented
the way they are used today in Apache. I believe this effectively
delays a second PUT until a second has passed since the PUT that
cause the weak ETag to be created; then the weak ETag is converted to
a strong one that the client can consider as equivalent. Be more
clear about how "W/[tag]" ~= "[tag]" for any value of [tag] (that
doesn't begin with W/). The value of weak ETag therefore becomes
one of conserving the server's resources by using a cheap way to
calculate ETags, that happens to also push clients to delay changes
that contain If-Match conditionals.
Strawman proposal "Read-Only": Let the server decide when to use weak
ETags, but only on read-only resources (writable resources must offer
strong ETags or none.) Document the server's goal here is to allow
caches to serve old resources if they are similar enough to the most-
recent version. Thus, the server's test here is not "Are the
versions semantically equivalent", but "Should caches refetch."
Strawman proposal "Die die die": get rid of weak Etags. Do this by
making the W/ prefix simply part of the ETag. Alternatively, do this
deprecating: recommend clients to ask again or not use etags that
begin with W/.
In any case, I find that the paragraph on modification time is
inconsistent with any language about semantic equivalence; there's no
relationship between whether a resource was modified in the last
second and whether it's semantically equivalent.
Lisa
On Mar 16, 2008, at 11:37 PM, Mark Nottingham wrote:
>
> Hmm. Doesn't resolving it on the side of keeping semantic
> equivalence beg the question of what semantic equivalence is -- and
> is there any way to define it except in a server-specific fashion?
>
>
> On 17/03/2008, at 1:44 PM, Robert Siemer wrote:
>
>>
>> On Sun, Mar 16, 2008 at 10:35:33PM +0100, Werner Baumann wrote:
>>> Robert Siemer wrote:
>>
>>>> There are. At least some of my CGI scripts use them. - I would not
>>>> discard that many other CGIs do the same.
>>>>
>>>> To see no useful weak etag implementations within the static file
>>>> serving code among common servers does not surprise me at all. -
>>>> How
>>>> should they know about semantic equivalence?
>>>>
>>>> I still don't know why this mecanism has to be an illusion.
>>>>
>>> I don't say, it *has to be* an illusion. I say it *is* an
>>> illusion, when
>>> confronted with current practice. And the spec is self-
>>> contradictory,
>>> because it contains two mutual exclusive definitions of weak etags.
>>>
>>> You can resolve this to either side. But the only realistic way
>>> seems to
>>> be to adapt the spec to current practice.
>>
>> Current practice is to deliver weak etags that never match later on.
>> These are based on "weak last-modified" dates. I hope that this
>> useless practice ("we always generate ETags") never makes it into the
>> spec!
>>
>> As clients will do the same independent on which side we pull, I
>> don't
>> see "semantic equivalence" already lost.
>>
>>
>> Robert
>>
>
>
> --
> Mark Nottingham http://www.mnot.net/
>
>
Received on Monday, 17 March 2008 21:57:51 UTC