XHR-ответы автоматически кэшируются в кеш браузера, если это разрешено заголовками кеша HTTP. В самом простом случае попробуйте отправить свой ответ с заголовками «Cache-Control: public, max-age = 0» и «Last-Modified: [yourstamp]», чтобы браузер генерировал условные запросы с помощью «If-Modified-Since»Заголовки запроса, куда вы можете затем отправить ответ «304 Not Modified», и XHR API представит ваш кэшированный ответ как ответ «200 Ok» на ваш скрипт. Или вы можете поэкспериментировать с заголовками max-age / s-maxage и «Expires:», чтобы ваш запрос обслуживался непосредственно из кэша браузера без даже повторной проверки / обхода сервера. Вы также можете использовать заголовки «ETag» вместо «Last-Modified», но поскольку ETag можно использовать для дактилоскопии, я ожидаю, что в будущем они станут неприемлемыми для публичного доступа HTTP.
Обратите внимание, если выиспользуя HTTP / 2 с серверными ресурсами, правила несколько изменяются, и кэшированные ответы ограничиваются сеансом, также чтобы избежать дактилоскопии.