Установите соответствующие заголовки в ответе http, такие как заголовок Expires и директивы Cache-control.
См. здесь для более подробной информации, но в двух словах вы хотите установить заголовки, чтобы указать:
- что ресурс должен быть кэширован в течение определенного времени (истекает заголовок)
- что ресурс кешируется (Cache-control: public header)
При желании вы можете разрешить пользователю запрашивать файл, но отправлять обратно «неизмененный resposne», который экономит при повторной загрузке тела (для больших файлов). В этом случае вы должны использовать заголовки ответа, чтобы указать
- Когда ресурс был последний раз изменен (последний измененный заголовок времени), что позволяет клиенту сообщать серверу, сколько лет версии
- E-Tag файла, который является своего рода хеш-кодом, который позволяет серверу узнать, какая версия у клиента. Будьте осторожны с тем, как генерируются электронные теги ... на некоторых серверах etags нарушают балансировку нагрузки.
Два подхода позволят клиенту кэшировать ответ и сократить количество повторных загрузок ответа. Кроме того, мне нравится избегать установки файлов cookie в кэшируемых ответах, поскольку некоторые кэши не кэшируют ответ, содержащий cookie, а некоторые кэшируют кэш ответа, включая cookie, оба из которых могут быть неуместными.