Re: PHP 4.0 Bug #8017: PHP ignores "If-Modified-Since" headers

From: Date: Wed, 29 Nov 2000 02:42:52 +0000
Subject: Re: PHP 4.0 Bug #8017: PHP ignores "If-Modified-Since" headers
Groups: php.dev 
Request: Send a blank email to php-dev+get-39441@lists.php.net to get a copy of this message
Hi All, I use "Last-Modified" and an ETAG header with my php scripts. I use the ETAG header to check if data has been modified in the database, if not I have the php script return a HTTP 304 header alowing the browser to use the page from cache. This works fine for me. I dont think anye webserver would be able to detect this for all php scrpts and keep the contents in cache (dynamic web pages does not exist on the harddisk). - Frank >From: jr-php@quo.to >Operating system: Linux >PHP version: 4.0.3pl1 >PHP Bug Type: Apache related >Bug description: PHP ignores "If-Modified-Since" headers > >PHP: 4.0.3p1 >Apache: 1.3.14 >Browser: IE 5.5 SP1 > >Because I want my PHP pages to be cached, my PHP script sends out a Last-Modified header (entire >code follows): > ><?php >Header ("Last-Modified: Mon, 27 Nov 2000 00:00:00 GMT"); >?> >Test... > >One would think that this would be enough to get a web browser to cache the page, but evidently >it is not. Examining my web server's access log shows that each time the page is subsequently >requested (e.g. by pressing Refresh), it sends back a "200 OK" response code instead of a >"304 Not Modified" as it should. In other words, the server is sending back a fresh copy >of the page every time. > >However, if I do a similar thing using a CGI script, the server *does* send back "304" >codes as it should (entire code follows): > >#!/bin/sh >echo "Last-Modified: Mon, 27 Nov 2000 00:00:00 GMT" >echo "Content-Type: text/html" >echo "" >echo "Test..." > >In both cases, an "If-Modified-Since" header is being sent to the server. Yet the PHP >script appears to ignore it completely and send a fresh page, while the very simple CGI shell script >doesn't. > >P.S. At the bottom of this are transcripts of the HTTP requests for the PHP & CGI scripts. >Notice how PHP sends back a fresh page even though the If-Modified-Since date is the same as the >Last-Modified date. > >P.P.S. I just noticed that this problem affects PHP's own web site too! The page >http://www.php.net/ returns a Last-Modified header, but browsers >receive a fresh copy of the page every time since If-Modified-Since is ignored. > > >--- PHP script --- > >GET /test.php HTTP/1.0 >If-Modified-Since: Mon, 27 Nov 2000 00:00:00 GMT > >HTTP/1.1 200 OK >Date: Mon, 27 Nov 2000 20:41:29 GMT >Server: Apache/1.3.14 (Unix) PHP/4.0.3pl1 >X-Powered-By: PHP/4.0.3pl1 >Last-Modified: Mon, 27 Nov 2000 00:00:00 GMT >Connection: close >Content-Type: text/html > >Test... > > >--- CGI shell script --- > >GET /cgi-bin/test.cgi HTTP/1.0 >If-Modified-Since: Mon, 27 Nov 2000 00:00:00 GMT > >HTTP/1.1 304 Not Modified >Date: Mon, 27 Nov 2000 20:41:46 GMT >Server: Apache/1.3.14 (Unix) PHP/4.0.3pl1 >Connection: close > > >-- >Edit Bug report at: http://bugs.php.net/?id=8017&edit=1 > > > >-- >PHP Development Mailing List <http://www.php.net/> >To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net >For additional commands, e-mail: php-dev-help@lists.php.net >To contact the list administrators, e-mail: php-list-admin@lists.php.net > > >

« previous php.dev (#39441) next »