https://developer.mozilla.org/ru/docs/Web/HTTP/Кеширование https://developer.mozilla.org/ru/docs/Web/HTTP/Заголовки/Last-Modified https://developer.mozilla.org/ru/docs/Web/HTTP/Заголовки/ETag Код состояния 304 (не изменен) указывает, что условный GET или запрос HEAD был получен и привел бы к 200 (ОК) ответ, если бы не тот факт, что условие оценивается как ложное. Другими словами, сервер не нужен передать представление целевого ресурса, потому что запрос указывает, что клиент, который сделал запрос условным, уже имеет допустимое представление; сервер поэтому перенаправить клиента, чтобы использовать то, что хранится представление, как если бы это была полезная нагрузка ответа 200 (ОК). Сервер, генерирующий ответ 304, ДОЛЖЕН сгенерировать любой из следующие поля заголовка, которые были бы отправлены в 200 (ОК) ответ на один и тот же запрос: Cache-Control, Content-Location, Date, ETag, Expires и Vary. Поскольку целью ответа 304 является минимизация передачи информации если получатель уже имеет одно или несколько кэшированных представлений, отправителю НЕ СЛЕДУЕТ генерировать метаданные представления, отличные от перечисленные выше поля, если только метаданные не существуют для руководящие обновления кэша (например, Last-Modified может быть полезным, если ответ не имеет поля ETag). Требования к кешу, который получает ответ 304, определены в Раздел 4.3.4 [RFC7234]. Если условный запрос возник с исходящим клиентом, таким как пользовательский агент с собственным кешем отправка условного GET на общий прокси, затем прокси ДОЛЖЕН переслать ответ 304 этому клиенту. Ответ 304 не может содержать тело сообщения; это всегда прекращается первой пустой строкой после полей заголовка.