ETag
ETag
(англ. Entity Tags — тэги сущностей) — механизм, который используют браузеры и веб-серверы, чтобы определить, является ли объект, находящийся в кэше браузера, таким же, как соответствующий объект на сервере. Теги сущностей являются почти полной аналогией Last-Modified
заголовка за исключением того, что в качестве тега может быть передана произвольная строка. Сервер указывает ETag
для компонента, используя HTTP-заголовок ETag
:
HTTP/1.1 200 OK Last-Modified: Tue, 12 Dec 2008 03:03:59 GMT ETag: "10c24bc-4ab-457e1c1f" Content-Length: 19145
Позднее, если браузер хочет определить актуальность компонента, он передает заголовок If-None-Match
для передачи ETag
обратно на сервер. Если ETag
совпадают, ответ от сервера приходит со статус-кодом 304, уменьшая, таким образом, объем передачи на 19145 байтов:
GET /b.png HTTP/1.1 Host: i.webo.in If-Modified-Since: Tue, 12 Dec 2008 03:03:59 GMT If-None-Match: "10c24bc-4ab-457e1c1f" HTTP/1.1 304 Not Modified
Включить ETag
для Apache можно, например, следующей директивой в конфигурации:
FileETagMTimeSize
При этом ETag
будет сформирован из даты изменения файла и его размера.