ETags in the Real World
Table 15-1 shows
that 6 out of 10 top U.S. web sites use ETags on a majority of their
components. To be fair, three of them have modified the ETag format to
remove inode
(Apache) or ChangeNumber
(IIS). Four or more contain ETags
that haven't been modified and therefore cause the performance problems
discussed previously.
Table 15-1. ETags observed across 10 top web sites
Web Site | Components with ETags | Fixed |
---|---|---|
0% (0/24) | n/a | |
5% (3/63) | yes | |
83% (157/190) | no | |
86% (57/66) | no | |
0% (0/5) | n/a | |
72% (42/58) | no | |
84% (32/38) | yes and no | |
94% (16/17) | unknown | |
0% (0/34) | n/a | |
70% (43/61) | yes |
An example of a component with different ETags across the cluster
of servers is http://stc.msn.com/br/hp/en-us/css/15/blu.css from http://msn.com. The HTTP headers from the first request
in the example contains an ETag value of 80b31d5a4776c71:6e0
.
GET /br/hp/en-us/css/15/blu.css HTTP/1.1 Host: stc.msn.com HTTP/1.1 200 OK Last-Modified: Tue, 03 Apr 2007 23:25:23 GMT ETag: "80b31d5a4776c71:6e0" Content-Length: 647 Server: Microsoft-IIS/6.0
On the first reload, the ETag matches and a 304 response is sent.
The Content-Length
header is missing
from the response because the 304 status code tells the browser to use
the content from its cache.
GET /br/hp/en-us/css/15/blu.css HTTP/1.1 Host: stc.msn.com If-Modified-Since: Tue, 03 ...
Get High Performance Web Sites now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.