From: Jakub Narebski <jnareb@gmail.com>
To: Jeff Garzik <jeff@garzik.org>
Cc: Martin Langhoff <martin.langhoff@gmail.com>,
Git Mailing List <git@vger.kernel.org>,
Linus Torvalds <torvalds@osdl.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Rogan Dawes <discard@dawes.za.net>,
Kernel Org Admin <ftpadmin@kernel.org>
Subject: Re: kernel.org mirroring (Re: [GIT PULL] MMC update)
Date: Sun, 10 Dec 2006 20:11:52 +0100 [thread overview]
Message-ID: <200612102011.52589.jnareb@gmail.com> (raw)
In-Reply-To: <457C0F8F.7030504@garzik.org>
Jeff Garzik wrote:
> Jakub Narebski wrote:
>> Jeff Garzik wrote:
>>> Jakub Narebski wrote:
>>>>
>>>> P.S. Any hints to how to do this with CGI Perl module?
>>>
>>> It's impossible, Apache doesn't supply e-tag info to CGI programs. (it
>>> does supply HTTP_CACHE_CONTROL though apparently)
>>
>> By ETag info you mean access to HTTP headers sent by browser
>> If-Modified-Since:, If-Match:, If-None-Match: do you?
Adn in CGI standard there is a way to access additional HTTP headers
info from CGI script: the envirionmental variables are HTTP_HEADER,
for example if browser sent If-Modified-Since: header it's value
can be found in HTTP_IF_MODIFIED_SINCE environmental variable.
But of course gitweb should rather use mod_perl if possible, so
somewhere in gitweb there would be the following line:
$in_date = $ENV{'MOD_PERL'} ?
$r->header('If-Modified-Since') :
$ENV{'HTTP_IF_MODIFIED_SINCE'};
or something like that...
> You can use this attached shell script as a CGI script, to see precisely
> what information Apache gives you. You can even experiment with passing
> back headers other than Content-type (such as E-tag), to see what sort
> of results are produced. The script currently passes back both E-Tag
> and Last-Modified of a sample file; modify or delete those lines to suit
> your experiments.
It is ETag, not E-tag. Besides, I don't see what the attached script is
meant to do: it does not output the sample file anyway.
>> It's a pity that CGI interface doesn't cover that...
>>
>>> You could probably do it via mod_perl.
>>
>> So the cache verification should be wrapped in if ($ENV{MOD_PERL}) ?
>
> Sorry, I was /assuming/ mod_perl would make this available. The HTTP
> header info is available to all Apache modules, but I confess I have no
> idea how mod_perl passes that info to scripts.
>
> Also, an interesting thing while I was testing the attached shell
> script: even though repeated hits to the script generate a proper 304
> response to the browse, the CGI script and its output run to completion.
> So, it didn't save work on the CGI side; the savings was solely in not
> transmitting the document from server to client. The server still went
> through the work of generating the document (by running the CGI), as one
> would expect.
The idea is of course to stop processing in CGI script / mod_perl script
as soon as possible if cache validates.
I don't know if Apache intercepts and remembers ETag and Last-Modified
headers, adds 304 Not Modified HTTP response on finding that cache validates
and cuts out CGI script output. I.e. if browser provided If-Modified-Since:,
script wrote Last-Modified: header, If-Modified-Since: is no earlier than
Last-Modified: (usually is equal in the case of cache validation), then
Apache provides 304 Not Modified response instead of CGI script output.
--
Jakub Narebski
next prev parent reply other threads:[~2006-12-10 19:09 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <45708A56.3040508@drzeus.cx>
[not found] ` <Pine.LNX.4.64.0612011639240.3695@woody.osdl.org>
[not found] ` <457151A0.8090203@drzeus.cx>
[not found] ` <Pine.LNX.4.64.0612020835110.3476@woody.osdl.org>
[not found] ` <45744FA3.7020908@zytor.com>
[not found] ` <Pine.LNX.4.64.0612061847190.3615@woody.osdl.org>
[not found] ` <45778AA3.7080709@zytor.com>
[not found] ` <Pine.LNX.4.64.0612061940170.3615@woody.osdl.org>
[not found] ` <4577A84C.3010601@zytor.com>
[not found] ` <Pine.LNX.4.64.0612070953290.3615@woody.osdl.org>
[not found] ` <45785697.1060001@zytor.com>
2006-12-07 19:05 ` kernel.org mirroring (Re: [GIT PULL] MMC update) Linus Torvalds
2006-12-07 19:16 ` H. Peter Anvin
2006-12-07 19:30 ` Olivier Galibert
2006-12-07 19:57 ` H. Peter Anvin
2006-12-07 23:50 ` Olivier Galibert
2006-12-07 23:56 ` H. Peter Anvin
2006-12-08 11:25 ` Jakub Narebski
2006-12-08 12:57 ` Rogan Dawes
2006-12-08 13:38 ` Jakub Narebski
2006-12-08 14:31 ` Rogan Dawes
2006-12-08 15:38 ` Jonas Fonseca
2006-12-09 1:28 ` Martin Langhoff
2006-12-09 2:03 ` H. Peter Anvin
2006-12-09 2:52 ` Martin Langhoff
2006-12-09 5:09 ` H. Peter Anvin
2006-12-09 5:34 ` Martin Langhoff
2006-12-09 16:26 ` H. Peter Anvin
2006-12-08 16:16 ` H. Peter Anvin
2006-12-08 16:35 ` Linus Torvalds
2006-12-08 16:42 ` H. Peter Anvin
2006-12-08 19:49 ` Lars Hjemli
2006-12-08 19:51 ` H. Peter Anvin
2006-12-08 19:59 ` Lars Hjemli
2006-12-08 20:02 ` H. Peter Anvin
2006-12-10 9:43 ` rda
2006-12-08 16:54 ` Jeff Garzik
2006-12-08 17:04 ` H. Peter Anvin
2006-12-08 17:40 ` Jeff Garzik
2006-12-08 23:27 ` Linus Torvalds
2006-12-08 23:46 ` Michael K. Edwards
2006-12-08 23:49 ` H. Peter Anvin
2006-12-09 0:18 ` Michael K. Edwards
2006-12-09 0:23 ` H. Peter Anvin
2006-12-09 0:49 ` Linus Torvalds
2006-12-09 0:51 ` H. Peter Anvin
2006-12-09 4:36 ` Michael K. Edwards
2006-12-09 9:27 ` Jeff Garzik
[not found] ` <4579FABC.5070509@garzik.org>
2006-12-09 0:45 ` Linus Torvalds
2006-12-09 0:47 ` H. Peter Anvin
2006-12-09 9:16 ` Jeff Garzik
2006-12-09 1:56 ` Martin Langhoff
2006-12-09 11:51 ` Jakub Narebski
2006-12-09 12:42 ` Jeff Garzik
2006-12-09 13:37 ` Jakub Narebski
2006-12-09 14:43 ` Jeff Garzik
2006-12-09 17:02 ` Jakub Narebski
2006-12-09 17:27 ` Jeff Garzik
2006-12-10 4:07 ` Martin Langhoff
2006-12-10 10:09 ` Jakub Narebski
2006-12-10 12:41 ` Jeff Garzik
2006-12-10 13:02 ` Jakub Narebski
2006-12-10 13:45 ` Jeff Garzik
2006-12-10 19:11 ` Jakub Narebski [this message]
2006-12-10 19:50 ` Linus Torvalds
2006-12-10 20:27 ` Jakub Narebski
2006-12-10 20:30 ` Linus Torvalds
2006-12-10 22:01 ` Martin Langhoff
2006-12-10 22:14 ` Jeff Garzik
2006-12-10 22:08 ` Jeff Garzik
2006-12-10 21:01 ` H. Peter Anvin
2006-12-10 22:05 ` Jeff Garzik
2006-12-10 22:59 ` Jakub Narebski
2006-12-11 2:16 ` Martin Langhoff
2006-12-11 8:59 ` Jakub Narebski
2006-12-11 10:18 ` Martin Langhoff
2006-12-09 18:04 ` Linus Torvalds
2006-12-09 18:30 ` H. Peter Anvin
2006-12-10 3:55 ` Martin Langhoff
2006-12-10 7:05 ` H. Peter Anvin
2006-12-12 21:19 ` Jakub Narebski
2006-12-09 7:56 ` Steven Grimm
2006-12-07 19:30 ` Linus Torvalds
2006-12-07 19:39 ` Shawn Pearce
2006-12-07 19:58 ` Linus Torvalds
2006-12-07 23:33 ` Michael K. Edwards
2006-12-07 19:58 ` H. Peter Anvin
2006-12-07 20:05 ` Junio C Hamano
2006-12-07 20:09 ` H. Peter Anvin
2006-12-07 22:11 ` Junio C Hamano
2006-12-08 9:43 ` Jakub Narebski
2006-12-11 3:40 linux
2006-12-11 9:30 ` Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200612102011.52589.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=discard@dawes.za.net \
--cc=ftpadmin@kernel.org \
--cc=git@vger.kernel.org \
--cc=hpa@zytor.com \
--cc=jeff@garzik.org \
--cc=martin.langhoff@gmail.com \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).