I was just looking at our site on WebPageTest.org and one of their recommendations for speeding up a website is:
ETag headers should generally not be used unless you have an explicit reason to need them
I was wondering what this means. Does it mean that static content you know will not be changing should not have them, or does it mean content you know will be changing regularly shouldn't have them, or does it mean that you shouldn't use them generally unless you have a specific need.
If it's the latter, when is the right time to use them?
The main argument I have seen against them is that files that are common to many servers will have to be grabbed over and over again by the client. Better is to include a version string in the name of the file itself.
So for example, if you round robin load balance your web servers each server will generate its own ETag causing the client to grab it multiple times.
You can read more on the yahoo high performance website blog. The summary of this is that you can make it work but you have spend the time to configure it right.