On Mon, 17 Oct 2005 00:16:32 +0200 (CEST)
 Henrik Nordstrom <[EMAIL PROTECTED]> wrote:
On Mon, 17 Oct 2005, Evgeny Kotsuba wrote:

------8<---------------------------------------------
1129493582.720 2000 127.0.0.1 TCP_REFRESH_HIT/200 455 GET http://images.rambler.ru/m3/w/l-i-Flagged.gif evg DIRECT/81.19.66.65 image/gif [Host: images.rambler.ru\r\nUser-Agent: Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.4.1) Gecko/20031121\r\nAccept: video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1\r\nAccept-Language: ru,en-us;q=0.7,en;q=0.3\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: KOI8-R,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 300\r\nProxy-Connection: keep-alive\r\nReferer: xxxxxx\r\nCookie: XXXXXXX\r\nProxy-Authorization: Basic ZXZnOjEyMw==\r\nPragma: no-cache\r\n] [HTTP/1.1 200 OK\r\nServer: nginx/0.2.0\r\nDate: Fri, 07 Oct 2005 22:30:19 GMT\r\nContent-Type: image/gif\r\nContent-Length: 132\r\nLast-Modified: Tue, 30 Dec 2003 14:21:08 GMT\r\nConnection: keep-alive\r\nKeep-Alive: timeout=20\r\nExpires: Thu, 05 Jan 2006 22:30:19 GMT\r\nCache-Control: max-age=7776000\r\nAccept-Ranges: bytes\r\n\r]
------8<---------------------------------------------
I.e.
Pragma: no-cache
Last-Modified: Tue, 30 Dec 2003 14:21:08
Expires: Thu, 05 Jan 2006 22:30:19 GMT

And what do you want Squid to do in this case?

What the client asked was:
  Please give me this URL (GET ...), and it must be a fresh copy not
  some possibly stale cached copy (Pragma: no-cache). I do not have
a local copy of the object in my cache so please give me the object even if it hasn't changed in ages (no If-Modified-Since or If-None-Match
  header).

With this you only have three options from what I can tell:

a) Follow specifications and forward the request as a cache miss.

b) reload-into-ims, converting the "Pragma: no-cache" into an if-modified-since request if a cached copy is found, verifying that our cached copy is up to date but still honoring the "Pragma: no-cache" in that the response must be fresh.

c) ignore-reload, always giving whatever is found fresh in the cache as if it was a normal request without "Pragma: no-cache".


Both alternative 'b' and 'c' violates the specifications. 'b' less so than 'c' as it at least still preserves the most fundamental spirit of "no-cache" always giving a fresh copy, but the specifications does not allow the cached copy to be used at all on "no-cache" requests.



So, what about   d) that is less that c)  ?

d) ignore-reload, if a cached copy is found, verifying that our cached copy is up to date but and ignoring "Pragma: no-cache" in tis case only .

My Examples are from Rambler and Yandex that is like Yahoo and Google, so what about all other websites ? By the way, the sample from Rambler was from rambler - mail, that runs on CommuniGate

This seems to be a common thing - to set Pragma: no-cache to static objects like images

RFC 2616 14.9.4 Cache Revalidation and Reload Controls

   End-to-end reload
The request includes a "no-cache" cache-control directive or, for compatibility with HTTP/1.0 clients, "Pragma: no-cache". [deleted for clarity]. The server MUST NOT use a cached copy when responding to
      such a request.

And what RFC sais about specially/erroneosly/ maliciously "Pragma: no-cache" ?

SY,
EK


SY,
Evgeny Kotsuba

Reply via email to