Re: How squid caches some things

From: Evgeny Kotsuba <evgen__k@dont-contact.us>
Date: Mon, 17 Oct 2005 13:08:11 +0400

On Mon, 17 Oct 2005 00:16:32 +0200 (CEST)
  Henrik Nordstrom <hno@squid-cache.org> 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
Received on Mon Oct 17 2005 - 03:08:16 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Nov 01 2005 - 12:00:07 MST