Код 304 сообщает браузеру: «Нет необходимости повторно передавать содержимое страницы, потому что сохраненная версия по-прежнему актуальна». Он отправляется, если браузер ранее уже загружал страницу или файл, и теперь проверяет, обновились ли они. Если изменений нет, сервер возвращает 304 статус код, и браузер отображает пользователю сохранённую копию.
На заметку: код 304 не содержит тела ответа, а лишь указывает, что можно использовать уже загруженную версию страницы.
304 код ответа сервера используется при проверке наличия кэшированной версии страницы. Например:
пользователь переходит на сайт, который посещал ранее;
браузер проверяет, есть ли у него сохраненная версия этой страницы, т.е. версия страницы, которую браузер отображал пользователю в его последний визит;
если браузер находит кэшированную версию страницы, он отправляет на сервер запрос: "Страница изменилась?";
сервер отвечает: "Нет, всё по-прежнему", посылает код ответа 304. Тогда браузер отображает пользователю кэшированную копию.
если страница претерпела изменения с момента последнего посещения пользователя, сервер отвечает кодом ответа 200 ОК и направляет браузеру новую версию страницы.
Код состояния 304 положительно влияет на скорость загрузки, т.к. экономит ресурсы сервера.
Для поисковых систем это значит, что не нужно повторно обходить страницу, которая не изменилась с момента последнего обхода. Это позволяет оптимизировать краулинговый бюджет: вместо того, чтобы тратить время на переобход не изменившихся страниц, робот сможет просканировать больше новых и обновленных страниц.
Интересно: код ответа сервера 304 больше подходит для крупных сайтов, которые могут испытывать или уже испытывают проблемы с неэффективным расходованием краулингового бюджета. К крупным сайтам Google относит сайты с более 10 тыс. страниц с часто обновляющимся контентом.
Не рекомендуется использовать 304 код состояния применительно к ресурсам, которые:
часто обновляются;
не подлежат кэшированию, например, страницы с персонализированным контентом, т.е. контентом, который зависит от предпочтений пользователя или обновляется в режиме реального времени;
требуют аутентификации со стороны пользователя (ввода логина/пароля).
Код 304 — полезный инструмент, позволяющий ускорить загрузку сайта за счёт повторного использования ранее полученного контента. Он играет важную роль в оптимизации скорости загрузки, снижении нагрузки на сервер и более эффективной индексации сайта поисковыми системами. Хотя код ответа 304 остаётся «невидимым» для пользователей, его влияние на производительность сайта ощутимо.