ETags allow browsers to perform conditional GETs. Only if the resource in question has been altered will the resource have to be re-downloaded. However, the browser still has to wait for the server to respond to its request.

An alternative to ETags is to introduce a token into the URL pointing to the resource:

`http://example.com/css/styles.css?token=134124134`

or

`http://example.com/css/134124134/styles.css`

Both approaches avoid having to re-download an unchanged resource.

However, using URLs with tokens allows the server to set a far-future expiry header on the resource. This saves the round trip taken up by a conditional GET - if the resource is unchanged then the URL pointing to it will be unchanged.

**Are there any advantages to using ETags over URLs with tokens?**