An ETag (Entity Tag) is an HTTP response header that identifies a version of a resource. This allow efficient caching by providing the client a method to check for a new version before downloading.
In general, the ETag is based on the file’s last modification time and size and usually handled by the reverse-proxy. This is called the weak ETag/ weak validation.
Alternative, there is a strong or content-based Etag that hashes the resources and provides a new version with every change. In most cases, the application has to manage the Etag.
Weak ETag headers can have the prefix W/
- this is optional and often only displayed with the initial 200
HTTP response and not the 304
HTTP response.
More information in the RFC9110 8.8.1 - Weak versus Strong.
Enabling ETag in nginx
Enabling (weak) ETags in nginx is simple - add the following config to the http
, server
or location
block to enable ETag headers.
[...]
etag on;
add_header Cache-Control "no-cache" always;
[...]
The config can be overwritten in a more specific block, in case you want to change the caching for images or other resources.
Check syntax with sudo nginx -t
and reload the nginx config.
That is it.
Testing it with curl
In this article we are going to do some testing with curl. The ETag header can be seen in the browser dev tools as well.
curl -I https://ittavern.com
HTTP/2 200
server: nginx
date: Mon, 20 Oct 2025 15:42:14 GMT
content-type: text/html
content-length: 20665
last-modified: Sat, 18 Oct 2025 20:55:34 GMT
vary: Accept-Encoding
etag: "68f3fec6-50b9"
[...]
This ETag won’t change as long as the size (content-length) or time of last modification (last-modified) of the resources changes.
We now can check the resource again with the ETag to check for changes.
curl -H 'If-None-Match: "68f3fec6-50b9"' -I https://ittavern.com
HTTP/2 304
server: nginx
date: Mon, 20 Oct 2025 16:24:47 GMT
last-modified: Sat, 18 Oct 2025 20:55:34 GMT
etag: "68f3fec6-50b9"
[...]
The 304
HTTP code stands for Not Modified
.
This is how it looks in the browser
Share:





E-Mail hello @itta vern. com
Most recent Articles: