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/10/01 19:50:14 UTC

DO NOT REPLY [Bug 23550] New: - mod_mem_cache replaces HTTP Status 301 with 200

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=23550>.
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=23550

mod_mem_cache replaces HTTP Status 301 with 200

           Summary: mod_mem_cache replaces HTTP Status 301 with 200
           Product: Apache httpd-2.0
           Version: 2.0.47
          Platform: PC
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: Major
          Priority: Other
         Component: mod_cache
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: lengerkeh@sixt.de


When apache is configured as a reverse proxy with mod_mem_cache enabled, it will
cache 301 responses from the backend. Whether this behaviour is desireable or
not, I really do not know, mod_disk_cache for example will not cache these
responses because mod_disk_cache does not cache responses without Content-Length
header set.

Now, when we hit the memory-cached object, mod_mem_cache returns the original
301 response with a replaced HTTP status of 200. This causes clients to not
follow the redirect.

I will try to illustrate this:

request:
    GET /foo HTTP/1.1
    Host: www.foo.tld

1st response, before caching:
    HTTP/1.1 301 Moved Permanently
    Location: http://www.foo.tld/foo/

subsequent response, on same request:
    HTTP/1.1 200 OK
    Location: http://www.foo.tld/foo/

=> Client ignores Location: header

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