The following reply was made to PR mod_proxy/4793; it has been noted by GNATS.
From: Dirk-Willem van Gulik <[EMAIL PROTECTED]>
To: Victor Pulver <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED]
Subject: Re: mod_proxy/4793: mod_proxy incorrectly caches responses which
contain a set-cookie
Date: Thu, 29 Jul 1999 22:12:39 +0200 (CEST)
You are right, somethng is not correct here, looking at rfc261, which
skimps the issue(though does list a number of prama's we really should
check for), and rfc2109.
But as you can see it needs a few more check's for other headers to be
compliant with rfc2109, which is a standards track document. And I'd
prefer to go that way. I will look into this tomorrow. I am still looking
for anything authoritative for http/1.0 but I fear that it does not exist.
In which it makes sense to follow the gist of your suggestion.
Dw.
From 2109:
4.2.3 Controlling Caching
An origin server must be cognizant of the effect of possible caching
of both the returned resource and the Set-Cookie header. Caching
"public" documents is desirable. For example, if the origin server
wants to use a public document such as a "front door" page as a
sentinel to indicate the beginning of a session for which a Set-
Cookie response header must be generated, the page should be stored
in caches "pre-expired" so that the origin server will see further
requests. "Private documents", for example those that contain
information strictly private to a session, should not be cached in
shared caches.
If the cookie is intended for use by a single user, the Set-cookie
header should not be cached. A Set-cookie header that is intended to
be shared by multiple users may be cached.
The origin server should send the following additional HTTP/1.1
response headers, depending on circumstances:
* To suppress caching of the Set-Cookie header: Cache-control: no-
cache="set-cookie".
and one of the following:
* To suppress caching of a private document in shared caches: Cache-
control: private.
* To allow caching of a document and require that it be validated
before returning it to the client: Cache-control: must-revalidate.
* To allow caching of a document, but to require that proxy caches
(not user agent caches) validate it before returning it to the
client: Cache-control: proxy-revalidate.
* To allow caching of a document and request that it be validated
before returning it to the client (by "pre-expiring" it):
Cache-control: max-age=0. Not all caches will revalidate the
document in every case.
HTTP/1.1 servers must send Expires: old-date (where old-date is a
date long in the past) on responses containing Set-Cookie response
headers unless they know for certain (by out of band means) that
there are no downsteam HTTP/1.0 proxies. HTTP/1.1 servers may send
other Cache-Control directives that permit caching by HTTP/1.1
proxies in addition to the Expires: old-date directive; the Cache-
Control directive will override the Expires: old-date for HTTP/1.1
proxies.
On 29 Jul 1999, Victor Pulver wrote:
>
> >Number: 4793
> >Category: mod_proxy
> >Synopsis: mod_proxy incorrectly caches responses which contain a
> >set-cookie
> >Confidential: no
> >Severity: serious
> >Priority: medium
> >Responsible: apache
> >State: open
> >Class: sw-bug
> >Submitter-Id: apache
> >Arrival-Date: Thu Jul 29 10:50:01 PDT 1999
> >Last-Modified:
> >Originator: [EMAIL PROTECTED]
> >Organization:
> apache
> >Release: 1.3.6
> >Environment:
> SunOS latimes10.su-colo.bbnplanet.com 5.6 Generic_105181-08 sun4u sparc
> SUNW,Ultra-Enterprise
> >Description:
> Responses which contain a set-cookie should not be cached by a proxy server
> (quoting from http://home.netscape.com/newsref/std/cookie_spec.html :
> When caching HTTP, as a proxy server might do, the Set-cookie response
> header should never be cached. )
>
> >How-To-Repeat:
>
> >Fix:
> In file porxy_cache.c, at approximately line 880:
>
> after the line
>
> ap_table_get(r->headers_in, "Authorization") != NULL ||
>
> add the line
>
> ap_table_get(resp_hdrs, "Set-Cookie") != NULL ||
>
> >Audit-Trail:
> >Unformatted:
> [In order for any reply to be added to the PR database, you need]
> [to include <[EMAIL PROTECTED]> in the Cc line and make sure the]
> [subject line starts with the report component and number, with ]
> [or without any 'Re:' prefixes (such as "general/1098:" or ]
> ["Re: general/1098:"). If the subject doesn't match this ]
> [pattern, your message will be misfiled and ignored. The ]
> ["apbugs" address is not added to the Cc line of messages from ]
> [the database automatically because of the potential for mail ]
> [loops. If you do not include this Cc, your reply may be ig- ]
> [nored unless you are responding to an explicit request from a ]
> [developer. Reply only with text; DO NOT SEND ATTACHMENTS! ]
>
>
>
>