RE: no_cache(1) and still cached?
On Fri, 2003-07-25 at 04:32, Frank Maas wrote: Come to think of it, I have never had problems with mod_proxy caching thing I didn't want cached. Quite the opposite -- I had to be very careful with Expires headers to get anything cached at all. I think you might be mis-diagnosing the problem here. Maybe it's an issue on the backend instead. Well, I thought that too, but couldn't get a grip on it. Picture the situation I described before. Whenever a page is served outside it's template, a logmessage is generated. Now when I see a page without template on my screen (wrong) and I look in the logfile I see that only the allowed address is written as being served. That's why I thought there was some optimisation in the cache engine that limited the number of equal requests to the backend to one for each URI. This would then even go beyond any headers, but more on the principle of 'the page served at exactly the same moment is the same page'...? --Frank PS: I now removed the caching mechanism from the setup and everything is working fine through the proxy. Whenever I cross this bridge again I will start looking more closely.
RE: no_cache(1) and still cached?
On Fri, 2003-07-25 at 04:32, Frank Maas wrote: But the idea of setting the Expiry header back in time is appealing... Come to think of it, I have never had problems with mod_proxy caching thing I didn't want cached. Quite the opposite -- I had to be very careful with Expires headers to get anything cached at all. I think you might be mis-diagnosing the problem here. Maybe it's an issue on the backend instead. - Perrin
Re: no_cache(1) and still cached?
On Thu, 2003-07-24 at 09:55, Frank Maas wrote: What I found was that sometimes users got served 'cached' dynamic pages. Although the server should not cache the page it looked like this happened whenever two requests were received at (nearly) the same time by the server. What happens if you use Expires headers instead of the no_cache() stuff? - Perrin
Re: no_cache()
David Wheeler wrote: Huh, according to the mod_perl guide: http://thingy.kcilink.com/modperlguide/correct_headers/2_1_3_Expires_and_Cache_Control.html Those headers are not added by no_cache(1). But I see that, according to the mod_perl Changes file, those headers were added to the behavior of no_cache(1) in mod_perl 1.21_01. So perhaps the mod_perl guide should be changed from its current documentation: my $headers = $r-headers_out; $headers-{'Pragma'} = $headers-{'Cache-control'} = 'no-cache'; $r-no_cache(1); To simply: $r-no_cache(1). Stas? Thanks David, fixed in the cvs version. _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://ticketmaster.com http://apacheweek.com http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: no_cache()
Ask Bjoern Hansen wrote: On Thu, 15 Nov 2001, Rasoul Hajikhani wrote: I am using $request_object-no_cache(1) with no success. Isn't it supported any more? Can some one shed some light on this for me... What do you mean with no success? What are you trying to do? -- ask bjoern hansen, http://ask.netcetera.dk/ !try; do(); more than a billion impressions per week, http://valueclick.com Well the cached document is returned rather than the new one. I know this because I make cosmetic changes to the document, reload it, and voila, still the old document. I have cleared the cache, set the cache size to 0, have even restarted the server at times just in case, but the result has been frantic. Sometimes the new document is shown on reloads, and at other times the old one is shown. -r
RE: no_cache()
#set the content type $big_r-content_type('text/html'); $big_r-no_cache(1); # some more code return OK; You *are* remembering to do $r-send_http_header(); somewhere in (some more code), arent you? L8r, Rob #!/usr/bin/perl -w use Disclaimer qw/:standard/;
RE: no_cache()
$r-no_cache(1) adds the headers Pragma: no-cache and Cache-control: no-cache. So, you need to call no_cache before calling $r-send_http_header. You can verify that it works by looking at the headers returned by the server when you request your document. If your browser is caching the page w/o regard to these headers, then it's your browser, not mod_perl that's broken or misconfigured. - Kyle -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Friday, November 16, 2001 10:48 AM To: Ask Bjoern Hansen Cc: [EMAIL PROTECTED] Subject: Re: no_cache() Ask Bjoern Hansen wrote: On Thu, 15 Nov 2001, Rasoul Hajikhani wrote: I am using $request_object-no_cache(1) with no success. Isn't it supported any more? Can some one shed some light on this for me... What do you mean with no success? What are you trying to do? -- ask bjoern hansen, http://ask.netcetera.dk/ !try; do(); more than a billion impressions per week, http://valueclick.com Well the cached document is returned rather than the new one. I know this because I make cosmetic changes to the document, reload it, and voila, still the old document. I have cleared the cache, set the cache size to 0, have even restarted the server at times just in case, but the result has been frantic. Sometimes the new document is shown on reloads, and at other times the old one is shown. -r
RE: no_cache()
On Fri, 2001-11-16 at 11:59, Kyle Oppenheim wrote: $r-no_cache(1) adds the headers Pragma: no-cache and Cache-control: no-cache. snip / Huh, according to the mod_perl guide: http://thingy.kcilink.com/modperlguide/correct_headers/2_1_3_Expires_and_Cache_Control.html Those headers are not added by no_cache(1). But I see that, according to the mod_perl Changes file, those headers were added to the behavior of no_cache(1) in mod_perl 1.21_01. So perhaps the mod_perl guide should be changed from its current documentation: my $headers = $r-headers_out; $headers-{'Pragma'} = $headers-{'Cache-control'} = 'no-cache'; $r-no_cache(1); To simply: $r-no_cache(1). Stas? Regards, David -- David Wheeler AIM: dwTheory [EMAIL PROTECTED] ICQ: 15726394 Yahoo!: dew7e Jabber: [EMAIL PROTECTED]
Re: no_cache()
Rob Bloodgood wrote: #set the content type $big_r-content_type('text/html'); $big_r-no_cache(1); # some more code return OK; You *are* remembering to do $r-send_http_header(); somewhere in (some more code), arent you? L8r, Rob #!/usr/bin/perl -w use Disclaimer qw/:standard/; Well then, that's what was missing :(... thanks -r
Re: no_cache()
On Thu, 15 Nov 2001, Rasoul Hajikhani wrote: I am using $request_object-no_cache(1) with no success. Isn't it supported any more? Can some one shed some light on this for me... What do you mean with no success? What are you trying to do? -- ask bjoern hansen, http://ask.netcetera.dk/ !try; do(); more than a billion impressions per week, http://valueclick.com
Re: no_cache pragma/cache-control headers : confusion
Hello, KOFrom the code in Apache.xs, it seems like setting $r-no_cache(0) will KOunset the flag, but not remove the headers. Well, the Expires header is also removed. But it's still broken; you can verify this buggy behavior with this simple script: use Apache (); my $r = Apache-request; $r-no_cache(1); $r-no_cache(0); $r-send_http_header; With mod_perls 1.24_01 and 1.25 on Apaches 1.3.14 and 1.3.19, this call leaves me with Pragma and Cache-Control headers. Sadly, the nice (but broken as per above) no_cache() behavior of sending those two headers is also undocumented in the mod_perl guide to begin with. Humbly, Andrew -- Andrew Ho http://www.tellme.com/ [EMAIL PROTECTED] Engineer [EMAIL PROTECTED] Voice 650-930-9062 Tellme Networks, Inc. 1-800-555-TELLFax 650-930-9101 --
RE: no_cache pragma/cache-control headers : confusion
Apache (as in httpd) will set the 'Expires' header to the same value as the 'Date' header when no_cache is flagged in the request_rec. When your Perl handler sets $r-no_cache(1), mod_perl (in Apache.xs) is setting the 'Pragma: no-cache' and 'Cache-control: no-cache' headers in addition to setting the no_cache flag in the request_rec. From the code in Apache.xs, it seems like setting $r-no_cache(0) will unset the flag, but not remove the headers. -- Kyle Oppenheim Tellme Networks, Inc. http://www.tellme.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Patrick Sent: Wednesday, April 04, 2001 2:47 AM To: [EMAIL PROTECTED] Subject: no_cache pragma/cache-control headers : confusion Dear all, There is some kind of confusion in my head, and the Eagle book seems to me even more confusing. Any help appreciated. First, I always thought that no_cache() does everything regarding headers, and that you have just to turn it on or off. However I discovered yesterday that, at least in my setup, even with no_cache(0) I have Pragma: no-cache Cache-control: no-cache which seems counter-intuitive to me. I've checked the Eagle : it says that no_cache() only adds an Expires field. Ok. But then from where does the Pragma header come ? About -headers_out() it is specifically said : In addition, the Pragma: no-cache idiom, used to tell browsers not to cache the document, should be set indirectly using the no_cache() method. So, that seems confusing to me, since the no_cache() methods seem not to deal with Pragma headers. Who sets Pragma/Cache-control headers and why are they like that by default ? How to override that (with headers_out ?) ? TIA. -- Patrick. ``C'est un monde qui n'a pas les moyens de ne plus avoir mal.''