Re: RE-VERSION

On Mon, 11 Aug 1997, John Franks wrote:

> On Mon, 11 Aug 1997, Klaus Weide wrote:
> 
> > I would like to see a definition of what is meant by "entity version".
> > So far it's a very diffuse term to me.
> > 
> > Can it be defined in an exact way?
> 
> I will try.  Let's focus only on responses and only on 1.X agents for
> now.  Informally the entity version is the smallest minor version
> number such that a user agent or proxy of that version can understand
> all features used in the response, provided those features exist in
> some version of HTTP/1.*.
> 
> More formally, the entity version of a response is 1.N provided
> every HTTP header or footer in the entity is defined in HTTP/1.N and
> at least one header or footer in the entity is not defined in
> HTTP/1.(N-1).  For the purposes of this definition a header is
> an HTTP header provided it is defined in HTTP/1.X for some X.

Ok thanks, that's a start.

Now it remains to be shown for what this would be useful.  (It also
remains to be seen whether Josh agrees with your definition :) )

As given by your formal definition, the "entity version" (which should be
cassed something else, see below) can be trivially derived from the
message.  It just requires tables of all headers defined by the various
protocol versions, nothing else.  Therefore it is totally redundant.

> > Also it seems the term "entity version" is very misleading, because
> > (whatever exactly it is) it appears to comprise more things than "entity"
> > in the sense of the HTTP spec.
> > 
> 
> I am not quite sure why you say this.  Remember that in HTTP-ese an
> entity is the entity-body together with all headers and footers.
> Operationally the entity is everything that goes over the wire in a
> transaction. 

No.  The entity is the entity-body together with the *entity*-headers,
*not* all headers.  According to the Official Guide to HTTP-ese.
I don't think that is what you mean.

> I can think of one case where you are correct though.
> Given the entity:
> 
> 
>    HTTP/1.1 200 OK
>    Server: Blah
>    Date: Mon, 11 Aug 1997 19:33:55 GMT
>    Last-modified: Fri, 25 Jul 1997 13:43:15 GMT
>    Content-type: text/html
>    Content-length: 3052
> 
>    ...3052 bytes of stuff...
> 
> there is no way to tell if there is an implicit "Connection: close"
> header (which there would be if the entity version is 1.0) or an
> implict "Connection: keep-alive" (which there would be if the 
> entity version is 1.1).  Thus in this case the entity version would
> contain information not derivable from the entity alone.  In other
> cases I think the entity version could, at least in principle, be
> derived from the entity.  Am I wrong?

So your formal definition above has failed to describe what you mean.
There is one thing which cannot be trivially derived from the message
itself as given, and the definition does not account for it.

Anyway, the property of the response which you express as an implicit
Connection token is unambiguously defined one way or the other, each
time such a response message is received, by the version number in the
status line.  So again this is redundant information.

> In any case, if the entity version were included in some header
> then for self-referential reasons the entity version would 
> depend only on the entity.  :)

As defined so far, I don't see any use for it...


         Klaus

Received on Monday, 11 August 1997 14:52:24 UTC