Re: detecting a "non-versioning-aware client"

Chris Kaler (
Tue, 16 Mar 1999 00:15:37 -0800

Message-ID: <FD7A762E588AD211A7BC00805FFEA54BE5ED78@HYDRANT>
From: "Chris Kaler (Exchange)" <>
To: "'Geoffrey M. Clemm'" <>
Date: Tue, 16 Mar 1999 00:15:37 -0800
Subject: RE: detecting a "non-versioning-aware client"

Of course we could just say that versioning aware clients
always pass in the "Versioning: Yes" header :-)

-----Original Message-----
From: Geoffrey M. Clemm []
Sent: Monday, March 15, 1999 9:30 PM
To: Chris Kaler (Exchange)
Subject: Re: detecting a "non-versioning-aware client"

It appears the consensus is that there is no magic way to tell whether
a client is versioning aware, so you can't base your behavior on
whether it is or not.  But you can try to make the semantics of any
request with no versioning methods or headers be whatever would be
least surprising to a versioning unaware client, since alternative
semantics for versioning aware clients can be defined to require
versioning methods or headers.

There's probably a much clearer way of saying this, but those of
you that care probably know what I mean (:-).


   From: "Chris Kaler (Exchange)" <>

   I believe we can determine this based on the request.

   If the client issues a request that utilizes new semantics,
   methods, or properties, they are assumed to be "versioning aware".

   If there issue requests that indicate they are not versioning
   aware, then we treat them as down-level.  One such case would
   be issuing a PUT or PROPPATCH against an immutable revision.


   -----Original Message-----
   From: Geoffrey M. Clemm []
   Sent: Sunday, March 14, 1999 12:49 PM
   Subject: detecting a "non-versioning-aware client"

   At various times, we have talked about the behavior of a method when
   it is applied by a "non-versioning-aware" client.  Hopefully I'm just
   missing something obvious, but how exactly do we detect that a request
   has been issued by a non-versioning-aware client?

   Certainly there will be some protocol versions that are known to be
   non-versioning-aware (e.g. HTTP-1.1, etc.), but what about new
   protocol extensions?  How can a server determine if a client using
   some arbitrary new extension is versioning-aware or not?

   One answer is that I've missed something, and we can tell.  We still
   may not want to treat versioning-aware and non-versioning-aware
   clients differently, but at least we could if we wanted to.

   Another answer is that we will treat any client whose versioning
   awarenes is unknown as if it were versioning aware.  This could be
   rather confusing for a non-versioning-aware client that upgrades
   to a new (non-versioning-aware) protocol version, and suddenly
   sees very different versioning behavior.

   There is an analgous problem with treating unknown protocols as
   always non-versioning-aware.

   A final answer is that we will not base any behavior on whether the
   is versioning-aware or not.  At the moment, this seems to be the best
   answer to me.