ETag: условный запрос и повторная проверка кеша
ETag является валидатором версии представления и помогает повторно использовать сохранённое тело ответа после проверки сервера.
Назначение
ETag является валидатором версии представления и помогает повторно использовать сохранённое тело ответа после проверки сервера.
Как это работает
Клиент передаёт известный валидатор через If-None-Match. Если представление не изменилось в рамках правил сравнения, сервер может вернуть 304 без нового тела; клиент использует сохранённые данные.
Пример
GET /style.css HTTP/1.1
Host: example.com
If-None-Match: "style-v2"
HTTP/1.1 304 Not Modified
ETag: "style-v2"
Что должно получиться
Сервер подтверждает пригодность известной версии вместо повторной передачи тела. Идентификатор здесь условный: ETag является непрозрачным значением, а не обязательно номером версии.
Граница применения и частая ошибка
304 — не ошибка отсутствующего файла и не отдельная HTML-страница. Не ожидайте от него полного тела ответа; при проблеме сначала изучите условия запроса и состояние кеша.
Самостоятельная проверка
На собственном учебном сервере загрузите ресурс дважды с кешем. Сравните переданные байты и заголовки. Затем измените файл и убедитесь, что клиент получает новую версию.