Davind,

IMHO the problem is hidden in the headers...:

> [EMAIL PROTECTED]:~$ head -n 12 picture.2
> HTTP/1.1 200 OK
> Date: Fri, 01 Jul 2005 23:36:53 GMT
> Server: Apache/1.3.33 (Debian GNU/Linux) mod_perl/1.29
> Last-Modified: Wed, 04 Jun 2003 06:53:10 GMT
> ETag: "1064b-515f-3edd9756;42c4b3fd"

> "picture.3" [1] [EMAIL PROTECTED]:~$ head -n 12 picture.3
> HTTP/1.1 200 OK
> Date: Fri, 01 Jul 2005 23:40:47 GMT
> Server: Apache/1.3.33 (Debian GNU/Linux) mod_perl/1.29
> Last-Modified: Wed, 04 Jun 2003 06:53:10 GMT
> ETag: "1064b-515f-3edd9756;42c4b3fd"

You conclude somehwere that IE is not honouring the Expires header, but that
need not be completely true. The only thing that header is telling IE is that
it may not _unconditionally_ reuse the same data the next time it is needed.
And most probably IE complies to it. Since the Expires header tells IE that 
the data is "expired" it will request the image again. But, different to wget,
it will provide Apache with the Etag and timestamp of the image it has 
downloaded the last time. Apache then will reply a 304 meaning 'the data you
have is the same as I have'. This response is based on ETag, URI and timestamp
of the downloaded image. As you can see in the result of both requests (see 
your data) that information is the same both times.

What you can try is to update the Last-Modified header on each request. Bear
in mind that this won't work for requests that are made within the same 
second. To probably state the obvious: it is necessary that you set the header
to the timestamp of the request, not to the timestamp of the underlying image!

HTH,

Frank

Reply via email to