Re: HTTP/1.1

    I recently read the (August 14) draft on HTTP/1.1 and I thought that I
    would give my comments:

These comments are somewhat late, since we have already spent 6 months
debating these points.  I'll try to explain why things are the way they
are.

    1. The second paragraph of 13.9 is unclear in it's meaning. Do you mean
    that a URI with a ? should never be cached or only when from an HTTP/1.0
    server? Under HTTP/1.1 I think it should be cached (and under 1.0 it
    should have been too but of course that cant be changed anymore) because
    it's up to the programmer of the CGI script to provide cache directives
    preventing caching if the calling of the script produces side effects. I
    mean, I am currently writing some CGI programs that always return the
    same thing because the QUERY_STRING parameters selects info from a
    database and such a response is cachable. Because it is by default not
    cached then I need to give an Expires header to enable caching but I
    think in HTTP/1.1 this shouldn't be necessary.
    
In general, it is not possible for a cache to be sure that a response
was generated by an HTTP/1.1 server.  Therefore, it is not always safe for
a cache to retain a response to a GET on a "?" URL, unless the origin
server has provided explicit notification that such a response is
cachable (by providing an explicit expiration time).  If you can't
provide an expiration time, then probably your response shouldn't
be cached anyway.

We rejected the approach of allowing caching of "?" responses unless
specifically prevented, because in the ambiguous cases the use of
caching is likely to lead to wrong results.  Numerous people reported
operational problems with HTTP/1.0 caches for precisely this reason.

    2. This is really only a thought that occured to me when I read the
    draft. It seems that the cache control is rather complex. Could it be
    possible that the extra burden of all this cache management could make
    proxies ineffective? Even now, my current experience with proxies is
    that they seem to be overloaded most of the time and I generally get a
    better and more reliable connection when I remove them from my list of
    proxies in my browser. Could the more complex cache control further
    burden the proxy computers?

Two points:
	(1) The run-time cost of implementing the Cache-control
	directives is likely to be minimal compared to the cost
	of storage management in a proxy cache.
	(2) The lack of the ability to carefully manage caching
	has discouraged the use of caches, and so has prevented
	us from removing load from the Internet.

Many caches are not optimally implemented.  There have been a number of
recent research papers published on this topic.  If your caches
are working badly, the likely reason is not the complexity of the
HTTP protocol.
    
-Jeff

Received on Friday, 20 September 1996 10:47:06 UTC