Question about ETag header?

Igor Sysoev is at
Sat Dec 16 10:27:55 MSK 2006

On Fri, 15 Dec 2006, Aleksandar Lazic wrote:

> On Sam 16.12.2006 00:41, Igor Sysoev wrote:
>> On Fri, 15 Dec 2006, Aleksandar Lazic wrote:
>>> on the irc ( )
>>> have been asked if it is possible to send a ETag-Header when the
>>> request is a static file.
>>> I have seen that you handle the ETag header in proxied request, how
>>> difficult is it to add the calculation to the static files?!
>> It's easy to add, however, I do not see how ETag is better than
>> Last-Modified for static files.
> A nice short description is here:
> It looks to me that it makes some caches out there to cache the response
> from the origin server more reliable as in rfc2616
> ( is written.
> 3.11 Entity Tags
> 13.3.2 Entity Tag Cache Validators
> 14.19 ETag
> I'am not sure if it's good or bad also how helpfull it really is, maybe
> someone on the list could help to understand this ;-)?!

I saw that browsers and cache proxies use Last-Modified as tag but not as
time value. If they want to revalidate response, they send If-Modified-Since
with the same value as they have received. MSIE adds ", length=XXXX" string.
nginx gets time in seconds from IMS header and does IMS == LM comparsion,
but not "IMS <= LM" comparsion to return 304.

> Btw.: How is the entity value calculated?!

Now Apache use "FileETag INode MTime Size" directive. Before Apache 1.3.23
the ETag was always formed as "inode-size-mtime" and the same files
from mirror image servers have the different ETags.

Igor Sysoev

More information about the nginx mailing list