
adam.prime at utoronto
Apr 9, 2009, 12:16 PM
Post #2 of 3
(732 views)
Permalink
|
Justin Wyllie wrote: > Hi > > I am trying to use: > > $headers = $r->headers_out; > $r->no_cache(1); > $headers->set( Location => url ); > return REDIRECT. > > The first problem is this does not set the Cache-Control header. > > If instead of the redirect I output some content (200 ) then it does, > correctly. > > Is there some reason why this may be? I couldn't see anything in our > Apache configuration files where this is set up. No idea. Does it set the Pragma header, but not the Cache-Control one? > > Second question: > > Does it make sense to try to set Cache-Control with a redirect anyway? To my mind, no. There's no content to cache, and normally (IIRC) if a browser is sent a 302, it'll request it again if you request it again. With a 301, some browsers will cache the fact that that URL 301'd before, and just take you right to the page you 301'd to. > If url1 is requested and the redirect is to url2. What is the > browser/proxy being told not to cache - url1 or url2? Since it is url2 > in the response headers surely url2? I have no idea what the spec would be, but if you 302 with a Cache-Control header to a page that doesn't have a Cache-Control header, I would not expect (or want) the header from the 302 to apply to the other page. Adam
|