From: Martin Langhoff Date: Mon, 11 Dec 2006 10:18:54 GMT Subject: Re: kernel.org mirroring (Re: [GIT PULL] MMC update) Message-ID: <46a038f90612110218u48b7737due56437da57091547@mail.gmail.com> In-Reply-To: <200612110959.56492.jnareb@gmail.com> On 12/11/06, Jakub Narebski wrote: > I was thinking not about ending execution, but about not sending script > output but sending HTTP 304 Not Modified reply by Apache. > > I meant the following sequence of events: > 1. Script sends headers, among those Last-Modified and/or ETag > 2. Apache scans headers (e.g. to add its own), notices that Last-Modified > is earlier or equal to If-Modified-Since: sent by browser or reverse > proxy, or ETag matches If-None-Match:, and sends 304 instead of script > output > 3. Script finishes execution, it's output sent to /dev/null > > Again, I don't know if Apache (or any other web server) does that. It doesn't. You want to take the decision to send a 304, cleanup and exit _inside_ the CGI. If it was up to apache, then the CGI script would end up creating the (potentially expensive to produce) content just to see it sent to /dev/null OR if apache was to terminate execution of the CGI more violently, the CGI wouldn't have a chance to cleanup and release resources. So it's a matter of setting the header to 304 and exiting. cheers, martin