Will nginx support HTTP Etag ?
Xia Qingran
qingran.xia at gmail.com
Wed Apr 15 06:53:29 MSD 2009
Thanks a lot for Michael and Anton's replies and good suggestion!
On Tue, Apr 14, 2009 at 11:36 PM, Michael Shadle <mike503 at gmail.com> wrote:
> 2009/4/14 Xia Qingran <qingran.xia at gmail.com>:
>> Hi,
>> After reading http://wiki.nginx.org, I find out that nginx has not the
>> offical support for the HTTP Etag,
>> http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19 . I
>> want to know whether the future version of nginx will add this
>> feature.
>>
>> My website is taking use of nginx to run static files server including
>> lots of Javascipt and CSS files modified frequently. Now I set a very
>> short expires time like, expires 1h, to renew the client cache as soon
>> as possible.
>>
>> But I think it is not a good solution. It wastes my network bandwidth
>> if I do not modify the static files. Etag will do it better because it
>> can renew the client's cache immediately. Moreover the implement of
>> this feature is not very hard. One simple method of generating the
>> ETag is based on the the size and last modified time of the file.
>
>
> Do what (I do) and other large sites do.
>
> Put a query string parameter on the file. It will make the browser
> treat it as a fresh one.
>
> foo.js
> foo.js?v=1
> foo.js?v=2
>
> (Somewhat thanks to Flickr for validating this concept)
>
> It is also CDN friendly, we use Akamai and it allows us to not have to
> purge the cache constantly.
>
> We use our subversion revision number for the ID that goes in the v=
> param. This automates it and there is no way for the file to be
> updated without going through subversion anyway; it's kind of a
> win/win. I find this to be easy and require less configuration.
> However, if you don't have an automated system you'll have to remember
> when you update your .js file to go update the calling page (which
> might be just as simple too)
>
> Yahoo discourages ETags as well depending on your usage model:
>
> "If you're not taking advantage of the flexible validation model that
> ETags provide, it's better to just remove the ETag altogether. The
> Last-Modified header validates based on the component's timestamp. And
> removing the ETag reduces the size of the HTTP headers in both the
> response and subsequent requests."[1]
>
> [1] http://developer.yahoo.com/performance/rules.html
>
>
--
夏清然
Xia Qingran
qingran.xia at gmail.com
Henny Youngman - "I told the doctor I broke my leg in two
places. He told me to quit going to those places." -
http://www.brainyquote.com/quotes/authors/h/henny_youngman.html
More information about the nginx
mailing list