ETag

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 можно, например, следующей директивой в конфигурации:

FileETag MTime Size

При этом ETag будет сформирован из даты изменения файла и его размера.