Re: an idempotent idea (think it twice - see what happens)

Shel,
I keep thinking over your idea, and this is what I have figured out:
An extension method may require some x.y version of the protocol to
function properly. If a request arrives to an older server in its way 
to origin server, the old server MUST report failure (501 Not implemented).
(in 1.0 version of the protocol we have no way to add extension methods
on the fly.) This implies of course an other extension header, something
like
Server-Control: may-forward=<http-version>
and its variation
Server-Control: may-cache=<http-version>
may be the permissive cache controlling directive.
This can give us possibility to add extensions "on the fly".
A server, understanding this scheme, will report "501 Not Implemented"
only if its version is less than the requested in the Server-Control
directive. (I assumed that forwarding a request needs understanding
of a smaller set of extension-headers, than cacheing.)
If a request containing
Server-Control: may-forward=<ver1>
Server-Control: may-cache=<ver2>
arrives to a server speaking verx version of the protocol, we have 3 scenarios:
verx < ver1         --> 501 Not Impleneted
ver1 <= verx < ver2 --> forward, no cacheing,
verx >= ver2        --> forward or serve from cache, depending on verx
			cacheing rules.

Origin servers and clients of course should implement the extension method,
but proxies between them need only to understand a reduced set of options,
headers, etc. The spec for the extension method can state clearly the
requirements, and clients can include those requirements in requests.

Is it real or too fictitious?

Without your original idea I would have never started to think about this.

And we have a long-long way ahead to make this working.

If WG members find this promising, we won't be bored for a while.

Andrew. (Endre Balint Nagy) <bne@bne.ind.eunet.hu>

Received on Sunday, 10 September 1995 21:12:28 UTC