Re: New document on "Simple hit-metering for HTTP"

    HEAD is not a NOOP, OPTIONS is.  What is the rationale for
    using HEAD to relay the final count instead of OPTIONS?

I guess I've never really understood what OPTIONS is supposed
to do, nor does the existing spec language make it clear that
this is allowed to carry the various request-headers that
are needed to report use-counts broken down by, say, User-agent.

In any event, while HEAD is not a "no-op", section 9.1.1 says
"the convention has been established that the GET and HEAD
methods should never have the significance of taking an action other
than retrieval."  So, from the point of view of the server's
visible state, doing a HEAD is indeed a no-op.  It does imply
that the server is going to access the meta-data of the resource
(because the "metainformation contained in the HTTP headers in response
to a HEAD request SHOULD be identical to the information sent in
response to a GET request"), which does impose a cost on the server.
But no more than if the server had to do a conditional GET.

Finally, OPTIONS responses include messages bodies, and HEAD
responses "MUST NOT", so I would expect the use of HEAD to
require few bits transferred over the wire.

Actually, I never thought about using OPTIONS until now :-)

Maybe we ought to have a true NOOP method?  But I'm not really
that worried about such slight changes in the load on a server.

    Does it make a difference when going through old proxies?
    
You mean, because HTTP/1.0 proxies don't understand OPTIONS and would
reject such requests?  In theory, yes, although I'm not sure this would
be an issue, because a server that wants accurate use-counts would only
believe them from a "cooperative" cache, which is identified by
"Connection: coop" in the request, and we said

     Note: a server might distrust such a request-header  when
     received from an HTTP/1.0 client, which might have incorrectly
     forwarded the Connection header.

One way for a server to deal with this case would be to send
something like
	Expires: Sun, 06 Nov 1994 08:49:37 GMT
	Cache-control: max-age=100000, max-uses=10
which would tell the HTTP/1.0 proxy not to cache things, and the
"cooperative" HTTP/1.1 proxy visible through that HTTP/1.0 proxy
that it could cache them and report its use-counts.  Then it
would indeed be useful to have the use-count relayed (naively)
by the HTTP/1.0 cache, and so OPTIONS wouldn't work.  Of course,
this depends upon trusting the HTTP/1.0 cache to obey Expires,
and I don't know if this is reasonable in practice.

-Jeff

Received on Wednesday, 14 August 1996 18:33:47 UTC