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

http://issues.apache.org/bugzilla/show_bug.cgi?id=43838

           Summary: If-Modified-Since request and htcacheclean conflict
           Product: Apache httpd-2
           Version: 2.2.3
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_cache
        AssignedTo: [email protected]
        ReportedBy: [EMAIL PROTECTED]


Setup:
  Apache2.2.3 setup as a reverse proxy, in a test environment ready to replace 
a production box.

Problem:
  Excessive 'If-Modified-Since' traffic to upstream server.

Cause:
   Every night htcacheclean is run.
   A returning Client requests an object/file using 'If-Modifed-Since' in the 
header, as the client has locally cached copy.

Symptom:
   Reverse proxy makes 'If-Modifed-Since' request to upstream server as object 
is not available in cache. Upstream server will reply with '304 Not-Modifed'. 
Note, Proxy still doesn't have a copy. 

   The expected action would be for the proxy to get the object, and 
report '304 Not-Modifed' to the client, so that the next request is served out 
of cache, and no further traffic occurs between proxy and upstream server.

Observation:
  If the clients cache is cleared, the next request comes from the upstream 
server, then subsequent requests come from the proxy's cache.

Hack:
In mod-proxy-http.c we have removed the test 'if r->main' check (snippet 
below), which appears to remove the "If-*" headers to the upstream server, but 
this may have other side effects, but gives us the desired operation.

        /* for sub-requests, ignore freshness/expiry headers */
        // CJW - Ignore Freshness on requests
        //if (r->main) {
            if (    !strcasecmp(headers_in[counter].key, "If-Match")
                 || !strcasecmp(headers_in[counter].key, "If-Modified-Since")
                 || !strcasecmp(headers_in[counter].key, "If-Range")
                 || !strcasecmp(headers_in[counter].key, "If-Unmodified-Since")
                 || !strcasecmp(headers_in[counter].key, "If-None-Match")) {
                continue;
            }
        //}

How should this senario really be fixed?

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to