TrueURL
TrueURL

Меню

304 Not Modified

Ответ на условный GET или HEAD: копия в кэше клиента еще актуальна, поэтому сервер не отправляет тело, а клиент повторно использует сохраненную копию.

Категория
3xx Редиректы
Поясняющая фраза
Not Modified
Редирект
Нет
Кэшируется по умолчанию
Нет

304 Not Modified — ответ на условный запрос GET или HEAD, то есть запрос с заголовком If-None-Match или If-Modified-Since, когда условие показывает, что сохраненная у клиента копия все еще актуальна. Вместо того чтобы снова передавать ресурс, сервер отвечает 304, и клиент использует копию из кэша. Это экономит трафик и время.

У ответа 304 никогда не бывает тела: он заканчивается пустой строкой после заголовков. Сервер должен отправить те из заголовков Cache-Control, Content-Location, Date, ETag, Expires и Vary, которые были бы в ответе 200, чтобы кэши могли обновить сохраненный ответ.

Хотя 304 относится к классу 3xx, это не редирект. Заголовка Location нет, и клиент остается на том же URL. Если клиент получил 304, хотя не отправлял условный запрос, значит, сервер работает неправильно.

Пример ответа

HTTP
HTTP/1.1 304 Not Modified
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "5f2b-1a3c"
Last-Modified: Wed, 28 Oct 2026 08:02:11 GMT
Cache-Control: public, max-age=600
Vary: Accept-Encoding

SEO и проверка редиректов

Код 304 помогает сканированию. Поисковые роботы Google поддерживают условные запросы, и 304 сообщает Googlebot, что содержимое не изменилось с прошлого сканирования. Это экономит краулинговый бюджет и снижает нагрузку на сервер, а страница сохраняет свое место в индексе, поэтому надежные заголовки ETag или Last-Modified стоит настроить, особенно на крупных сайтах.

TrueURL по умолчанию не отправляет условные заголовки, поэтому вы увидите 200, а не 304. Чтобы проверить повторную валидацию, добавьте в разделе «Пользовательские заголовки запроса» заголовок If-None-Match со значением ETag страницы.

Типичные причины и сценарии использования

  • Браузер повторно проверяет закэшированную страницу, изображение или скрипт с помощью If-None-Match, и ETag по-прежнему совпадает.
  • Поисковый робот или RSS-ридер повторно запрашивает ресурс с If-Modified-Since, а изменений нет.
  • После деплоя посетители видят устаревший контент, потому что сервер продолжает отвечать 304: его валидаторы не изменились — например, ETag строится из размера файла и времени изменения, а деплой их сохранил. Убедитесь, что валидаторы меняются при каждом изменении содержимого.

Проверка редиректов URL

Бесплатная проверка редиректов TrueURL покажет все коды ответа, которые возвращает URL, — на каждом переходе цепочки.