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