Can Apache2 be configured to return both HTTP 1.0 and 1.1?

dmayo asked:

I’m trying to figure out a caching issue. We are currently using a CMS with built in caching. We can then delete the cached copy via the control panel and the uncached page will be served until we cache that page again.

Long story short, we know that a either a proxy server or load balancer was put in place, and we think that it is caching the pages as well as the CMS. Our specific issue is that when we un-cache the page in the CMS, it’s taking 15 minutes (timed) to show up un-cached (even after using different browser, clearing the browser cache, etc.), when prior to the network appliance being introduced, the un-cached page would show up immediately. Unfortunately we don’t have any historical response headers saved anywhere.

When we believe that the page is being cached by the proxy/lb, the Response header is returning:

HTTP/1.1 304 Not Modified
Server: Apache/2.0.59 (Unix) JRun/4.0 mod_ssl/2.0.59 OpenSSL/0.9.8k PHP/5.2.6
Last-Modified: Fri, 03 Aug 2012 13:29:12 GMT
Etag: "92fe-18f7-837ada00"
Accept-Ranges: bytes
Keep-Alive: timeout=5, max=100
Content-Type: text/html
Content-Encoding: gzip
Connection: Keep-Alive 
Date: Mon, 06 Aug 2012 13:49:40 GMT
X-Cntnt-Length: 6391

When it’s not being cached by the CMS, the response headers are:

HTTP/1.0 200 OK
Date: Mon, 06 Aug 2012 14:03:59 GMT
Server: Apache/2.0.59 (Unix) JRun/4.0 mod_ssl/2.0.59 OpenSSL/0.9.8k PHP/5.2.6
X-Powered-By: PHP/5.2.6
Set-Cookie: blah-blah-blah
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Mon, 06 Aug 2012 14:04:04 GMT
Pragma: no-cache
Connection: close
Content-Type: text/html

I guess my question is, can Apache2 be configured to return both HTTP 1.0 and 1.1 ? I know the Etag indicates a cached page, and believe it’s not available in HTTP/1.0.

Thanks for any insights.

[I originally asked this over on stackoverflow, and it was suggested I ask over here.]

My answer:


Your uncached response returns:

X-Powered-By: PHP/5.2.6

This means that it’s a page which has been generated by PHP, and this means that your PHP application may have also generated the HTTP/1.0 200 OK. If this is the case, a search for HTTP/1.0 through its source code may reveal the offending code.


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.