1

Я пытаюсь получить изображение для кэширования на веб-сайте. Изображение обслуживается PHP, в котором я устанавливаю заголовок ответа элемента управления кешем с соответствующим значением, однако это не кэширование изображения, я думаю, что он может иметь какое-то отношение к заголовку запроса, имеющему контроль кеша без кеша ? Заголовки ниже:Запросить заголовки против заголовков ответов

Response Headers

Access-Control-Allow-Origin:* 
Cache-Control:max-age=290304000, public 
Connection:close 
Content-Encoding:gzip 
Content-Length:5166 
Content-Type:image/jpeg 
Date:Thu, 28 Jan 2016 15:50:56 GMT 
Etag:f31a1f9f6699e0660c6b0b8e2c133add 
Expires:Sat, 27 Feb 2016 15:50:56 GMT 
Last-Modified:Thu, 26 Nov 2015 11:40:11 GMT 
Server:Apache/2.2.15 (Red Hat) 
Vary:Accept-Encoding 
X-Powered-By:PHP/5.6.17 

заголовков запроса

Accept:image/webp,image/*,*/*;q=0.8 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:en-US,en;q=0.8 
Authorization:Basic dGs6dGs= 
Cache-Control:no-cache 
Connection:keep-alive 
Cookie:_dc_gtm_UA-60001243-5=1; _gat_UA-60001243-5=1; laravel_session=eyJpdiI6IkdcL0VYYUxMNEU0Q1wvM1VvQlpOU3NDZz09IiwidmFsdWUiOiJWaGVDaVJqdGdMaWlOaDBzUTI5Tzd3TmE1SU9UR2VcL29ZallVSWR6TUtaVTMyclM1aWpmM0F6Tk94eFBCZjZzamQ1U05RdlR0WTNUZzdFMEFLMkZYVFE9PSIsIm1hYyI6Ijg3MjY1ZDM3MDI1ZTRmYTI0ODY3NWYxNDEyM2RkMGRhMWFlY2E3NDFjOGEwMTQ1NzZiMWZmODFkNzZjNzRhYWQifQ%3D%3D; _ga=GA1.4.5501114.1453888035 
Host:*****.com 
Pragma:no-cache 
Host:*****.com 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 

Как получить эти изображения в кэш?

ответ

1

Ваше представление об отсутствии кеширования происходит из-за Cache-Control: no-cacheзапрос заголовок правильный; этот заголовок запроса сообщает о возможных кешах по пути к , а не, используя любые данные в кэше для запрашиваемого ресурса (см. раздел «Перегрузка по завершению» от RFC 2616).

Конкретно, ваш ответ может на самом деле быть кешированным. Но этот заголовок Cache-Control: no-cache в запросе говорит, что этот конкретный HTTP-клиент не хочет использовать кеш; другой HTTP-клиент может использовать кешированный ресурс.

В таких ситуациях, когда некоторые HTTP-клиенты отказываются использовать какой-либо кеш, я видел , например. haproxy используется для фильтрации/перезаписи этого Cache-Control заголовка запроса; Я подозреваю, что Apache можно использовать для этого. Теоретически такое переписывание заголовков запросов за спиной клиента, так сказать, не является хорошей идеей. Но если вам действительно нужны такие запросы, используя кеш, где они доступны, это может быть целесообразным решением.

Надеюсь, это поможет!

Смежные вопросы