Если вашей реализации всегда будет требоваться запрос базы данных, шансы на реализацию 304 не принесут особой пользы. Возможно, вы сохраняете только ресурсы, необходимые для обработки ответа. Если ваш рендеринг потребует большой обработки, он все же может стоить того, даже если вам требуется запрос базы данных.
Однако, если у вас есть механизм сопоставления uri запроса с датой истечения срока действия без использования базы данных, вы можете заметить большее улучшение времени отклика и экономии ресурсов сервера.
Как я реализовал похожий сценарий, кешируя каждый запрос на диск. Первая строка в файле (названная так, что не требует сканирования) содержит метаданные, такие как etag
и ttl
. На основании измененного времени для файла и сохраненного в нем ttl
я могу, прочитав только одну строку с диска, решить, должен ли я отправить ответ 304 (возвращающий клиент), содержимое файла кэша (новый клиент или возвращающий клиент, который не видел недавнего рендеринга), или обрабатывает запрос, обычно кэширующий обновленный результат одновременно.
См. Этот вопрос для получения дополнительной информации о реализации 304 ответов. В порядке ли моя реализация HTTP условного получения ответов в PHP?