Почему браузеры не кэшируют эти статические файлы
Мой вопрос кажется дубликатом этого
но у меня есть дело
- когда я обновляю страницу с помощью F5, тогда изображения не извлекаются из кеша, вместо этого запрос отправляется на сервер, а сервер отвечает 304 кода состояния (без изменений)
- но если я наберу URL-адрес в адресной строке или перейду на страницу с помощью кнопки браузера назад / вперед, то изображения будут поступать из кэша.
но у меня есть одно сомнение, почему делается запрос кэшированных изображений на исходный сервер на F5 (обновление страницы)
Конфигурация Nginx
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 2d;
proxy_pass http://localhost:3001;
break;
}
Заголовок запроса
===================================
GET /assets/first_banner.png HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Accept: image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36
Referer: http://localhost:3000/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
===================================
Заголовок ответа:
===================================
HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Sun, 08 Dec 2013 20:31:06 GMT
Content-Type: image/png
Content-Length: 141498
Connection: keep-alive
Cache-Control: max-age=172800
Last-Modified: Wed, 23 Oct 2013 05:34:11 GMT
Etag: "0fc96d0218a47398d37dacca76916727"
X-Ua-Compatible: IE=Edge
X-Request-Id: 48d1ec3a24e2c0f13250ea74101f6753
X-Runtime: 0.021479
Expires: Tue, 10 Dec 2013 20:31:06 GMT
===================================
1 ответ
Когда вы нажимаете клавишу F5, вы говорите браузеру проверить веб-сервер, является ли содержимое, кэшированное локально или нет, действительным.
Если срок действия объекта на веб-сервере истек, браузер снова получает ресурс. Если объект все еще действителен, используется локальное содержимое, сохраненное в браузере.