Що це означає
Кешована копія клієнта досі актуальна, тож сервер не надсилає тіло. Це відповідь на умовний запит з If-None-Match або If-Modified-Since.
Типові причини
- ETag в If-None-Match збігається з поточною версією
- Ресурс не змінювався з моменту If-Modified-Since
- Браузер перевіряє кешований ресурс
Як виправити
Якщо ви клієнт або відвідувач
Використайте кешоване тіло. Якщо вміст здається застарілим, валідатор може бути неправильним; примусово перезавантажте або перевірте генерацію ETag.
Якщо ви власник сайту чи API
Генеруйте стабільні ETag (однакові на всіх серверах за балансувальником) і надсилайте ті самі заголовки кешування, що й із 200.
Приклад відповіді
HTTP/1.1 304 Not Modified
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "33a64df5"
Cache-Control: max-age=3600 Специфікація
Часті запитання
› Чи є 304 помилкою?
Ні. Він економить трафік, повідомляючи клієнту, що його кеш актуальний.
› Чому користувачі бачать старі файли після розгортання?
Заголовки кешування дозволяють застарілі копії. Використовуйте імена файлів із відбитком для ресурсів і короткий max-age з перевіркою для HTML.