- From: Mark Nottingham <mnot@yahoo-inc.com>
- Date: Fri, 10 Mar 2006 15:08:52 -0800
- To: ietf-http-wg@w3.org
RFC 2616 section 14.8 says:
> If a request is
> authenticated and a realm specified, the same credentials SHOULD
> be valid for all other requests within this realm (assuming that
> the authentication scheme itself does not require otherwise,
> such
> as credentials that vary according to a challenge value or using
> synchronized clocks).
> When a shared cache (see section 13.7) receives a request
> containing an Authorization field, it MUST NOT return the
> corresponding response as a reply to any other request,
> unless one
> of the following specific exceptions holds:
> 1. If the response includes the "s-maxage" cache-control
> directive, the cache MAY use that response in replying to a
> subsequent request. But (if the specified maximum age has
> passed) a proxy cache MUST first revalidate it with the
> origin
> server, using the request-headers from the new request to
> allow
> the origin server to authenticate the new request. (This
> is the
> defined behavior for s-maxage.) If the response includes "s-
> maxage=0", the proxy MUST always revalidate it before re-
> using
> it.
> 2. If the response includes the "must-revalidate" cache-control
> directive, the cache MAY use that response in replying to a
> subsequent request. But if the response is stale, all caches
> MUST first revalidate it with the origin server, using the
> request-headers from the new request to allow the origin
> server
> to authenticate the new request.
> 3. If the response includes the "public" cache-control
> directive,
> it MAY be returned in reply to any subsequent request.
This section is confusing, so a few questions;
a) Is the intent of the first SHOULD to allow credential caching
(e.g., similar to [1]) in intermediaries?
If so, it's pretty well hidden; so much so that I wrote a duplicative
I-D after the fact ;) This is a useful feature that AFAIK is not
implemented by anyone; however, it has implications for
authentication realms (i.e., they must be homogenous) that people may
not realise.
b) Are the requirements regarding s-maxage predicated on the
credentials being seen before? Or, does s-maxage allow subsequent
requests to be served without credentials at all, or different
credentials?
c) Specifying this behaviour ("When a shared cache...") in terms of
requests containing an Authorization field effectively allows the
client to control the cacheability of the response. However, clients
often send the Authentication header pre-emptively to resources that
don't need it, which may lead to sites being unnecessarily less
cacheable.
I haven't looked at the core caching stuff in a while; am I missing
something here?
1. http://www.mnot.net/drafts/draft-nottingham-http-auth-cache-00.txt
Thanks,
--
Mark Nottingham
mnot@yahoo-inc.com
Received on Friday, 10 March 2006 23:09:52 UTC