- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Wed, 06 Aug 2008 15:32:01 +0200
- To: Brian Smith <brian@briansmith.org>
- CC: 'HTTP Working Group' <ietf-http-wg@w3.org>
Brian Smith wrote: > ... >>> 1. The message might not contain an entity (e.g. if the >>> request is a HEAD or if the response code is 204 No Content), >>> so "entity enclosed in the message" is not really correct. >> That's true (and the same text is in 2616). Care to propose >> something else? > > If a response contains an entity with a Content-Location header, then the > Content-Location identifies a resource, and the response entity is a > representation of that resource. In responses to GET and HEAD requests the > Content-Location identifies the selected variant. > ... That doesn't the HEAD issue either, I think. Also it's contrary to our goal not to use "variant" anymore. (see below) >> The current plan for Issue 109 is to get rid of the term >> "variant", and to make "representation" and "entity" >> equivalent >> (<http://www3.tools.ietf.org/wg/httpbis/trac/ticket/109>). There's a >> *separate* issue for "requested variant", which is issue 69 >> (<http://www3.tools.ietf.org/wg/httpbis/trac/ticket/69>). > > I know. What I am trying to say is that plan doesn't work because "entity" > and "variant" mean two different things. I think "entity" could replace Do they? RFC 2616 says about "variant": "A resource may have one, or more than one, representation(s) associated with it at any given instant. Each of these representations is termed a `varriant'. Use of the term `variant' does not necessarily imply that the resource is subject to content negotiation." So a variant *is* a representation. (And I think we have decided earlier that there's really no distinction between "representation" and "entity" either). > "representation" but it cannot replace "variant." The language that > describes cache invalidation based on Content-Location makes it clear that > Content-Location isn't supposed to identify a specific entity. Otherwise, > Content-Location would be functionally equivalent to ETag. If you think Although Content-Location identifies an entity, that doesn't mean that that entity can't change over time. > about it in VCS terms, then a variant is a branch of a resource, and an > entity is a particular version of a variant. At any particular time, there > can be many variants of a resource and each variant has one entity that > describes it at that point of time. Over time, a variant will be described > by multiple entity as the variant changes. I think we agree on this. > I don't really see the motivation for i109. If the specification is going to > become much clearer by such a change, then I am all for it. But, if "entity" > is going to lose its precise meaning or be overloaded with multiple meanings > then how is that an improvement? The issues we want to solve are: - we have three terms that mean either the same or very similar thing (depending whom you ask), and people *are* confused - the definition of "representation" is broken ("An entity included with a response that is subject to content negotiation, ...) -- it's definitively not used that way; and I don't see why we would need a special term for that case - we have no definition of "requested variant", and that affects the ETag discussions. There may be more, but these are my favorites. >>> 3. The RFC 2616 language says that Content-Location SHOULD >>> be provided in every case. Your change only says >>> Content-Location should be required in the special case >>> that begins "especially" in RFC 2616. So, it doesn't mean >>> the same thing. >> Yes, that's intentional and reflects what RFC 2068 said. I >> think the change in RFC 2616 was incorrect (overzealous >> conversion to BCP 14 keywords). >> >> So do you think that servers SHOULD return a Content-Location >> even when only one entity is associated? > > IF Content-Location is going to live on then I agree that the RFC 2068-like > definition makes more sense. Basically that if the response contains a Vary > header then the entity should have a Content-Location header. Yes (unless the server did not send Vary because of the other issues with UA handling of that one). > ... >>> 5. What does "might be individually accessed" mean? As far as cache >>> validation is concerned (which is the only time Content-Location is >>> used in the protocol itself), the Content-Location doesn't >> have to be accessible. >>> That whole condition can be removed since it is meaningless. >> What's the point in supplying a Content-Location, if nobody >> can access it? > > Caches uses Content-Location is to identify the variant (not entity--that is > what ETag does) so that they can invalidate multiple cache entries at once. > That is the only use of Content-Location in the protocol itself. Since the > cache doesn't need to issue a request to invalidate those entries, the > resource at Content-Location doesn't have to be accessible. The only other > use of Content-Location in HTTP is to resolve relative URIs in the response > entity, and the resource doesn't have to be "accessible" for that either. > ... There are definitively other uses, such as authoring a specific variant. Maybe not clear from RFC 2616, but they exist anyway. > If the "might be individually accessed" condition is important then it needs > to be clarified so that implementations know what they are supposed to do to > meet the condition. But, I don't think the condition adds any value which is > why I suggest that it is simply removed. > > But, again, I think we should first decide if the use of Content-Location > should ever be encouraged at all given how problematic it is. > ... I must admit that I'm not aware of any problems with Content-Location in practice (besides the issues raised months ago wrt the base URI). BR, Julian
Received on Wednesday, 6 August 2008 13:32:49 UTC