You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2003/12/01 21:42:45 UTC

DO NOT REPLY [Bug 25123] New: - 304 - Not Modified does not return Expires/Cache-Control headers

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25123>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25123

304 - Not Modified does not return Expires/Cache-Control headers

           Summary: 304 - Not Modified does not return Expires/Cache-Control
                    headers
           Product: Apache httpd-2.0
           Version: 2.0.48
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Major
          Priority: Other
         Component: mod_expires
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: marc@r4l.com


According to W3C spec of 304 response header 
(http://www.w3.org/Protocols/HTTP/HTRESP.html):
"Response headers are as if the client had sent a HEAD request, but limited to 
only those headers which make sense in this context. This means only headers 
that are relevant to cache managers and which may have changed independently 
of the document's Last-Modified date. Examples include Date , Server and 
Expires . "


The following example shows the results of a request done to an Apache2 server:

# curl -s -I http://jauvin.com/images/email.gif
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2003 20:34:15 GMT
Server: Apache/2
Vary: Host
Last-Modified: Fri, 20 Dec 2002 15:49:27 GMT
ETag: "6cd17-51aa-dab1cfc0"
Accept-Ranges: bytes
Content-Length: 20906
Cache-Control: max-age=7200
Expires: Mon, 01 Dec 2003 22:34:15 GMT
Content-Type: image/gif

# curl -s -I http://jauvin.com/images/email.gif -H 'If-Modified-Since: Fri, 30
Nov 2003 08:43:27 GMT'
HTTP/1.1 304 Not Modified
Date: Mon, 01 Dec 2003 20:34:16 GMT
Server: Apache/2
ETag: "6cd17-51aa-dab1cfc0"
Vary: Host


We can see from the first request, that the "Expires/Cache-Control" headers are
missing from the second request (304).

Here is an example on an Apache 1.3.X server:

# curl -s -I http://redhat.com/img/homepg_rh_logo.gif
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2003 20:41:00 GMT
Server: Apache
Set-Cookie: Apache=65.39.170.200.235271070311260394; path=/; expires=Sat,
29-Nov-08 20:41:00 GMT
Cache-Control: max-age=86400
Expires: Tue, 02 Dec 2003 20:41:00 GMT
Last-Modified: Thu, 07 Jun 2001 13:01:59 GMT
ETag: "bd440-46c-3b1f7b47"
Accept-Ranges: bytes
Content-Length: 1132
Content-Type: image/gif

# curl -s -I http://redhat.com/img/homepg_rh_logo.gif -H 'If-Modified-Since:
Fri, 30 Nov 2003 08:43:27 GMT'
HTTP/1.1 304 Not Modified
Date: Mon, 01 Dec 2003 20:41:00 GMT
Server: Apache
ETag: "bd440-46c-3b1f7b47"
Expires: Tue, 02 Dec 2003 20:41:00 GMT
Cache-Control: max-age=86400


As we can see here, both queries contain the "Expires/Cache-Control" headers.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org