避免对缓存文件的请求

时间:2018-05-22 22:02:48

标签: http caching http-headers browser-cache cache-control

我有web-server,它存储page.html和style.css文件。当我尝试在浏览器中打开IP_ADDRESS / index.html时,浏览器会一致地向Web服务器发送两个请求。第一次请求page.html,第二次请求style.css,这是page.html的需求。我想尽可能长时间地在客户端浏览器中缓存style.css。为此,我在标题中插入这样的行:

Cache-Control: public, max-age=31536000, immutable

当我尝试在浏览器中打开page.html时,我第一次看到两个请求,两者的状态都是200。接下来,当我打开page.html时,我也看到两个请求,但是对page.html的请求的状态为200,而对style.css的请求的状态为304。

我通过Wireshark嗅到了流量,甚至尝试使用Burp Suite扫描http请求/响应,我看到了下一张图片:

  • 首次连接到web-server:对于page.html的第一次请求我获得“200 OK”响应,对style.css的第二次请求我获得“200 OK”响应。
  • 第二次连接到网页:第一次请求到page.html我获得“200 OK”响应,第二次请求(有标题If-Modified-Since)到style.css我获得“304 Not Modified”响应

但问题是,对style.css的第二个请求无论如何发送。我需要完全摆脱它,因为客户端浏览器已经有这个文件。请告诉我,我应该在style.css的响应头中添加什么来避免对此文件的任何请求,而客户端浏览器具有style.css文件的缓存。我想看看,当第一次客户端获取page.html和style.css文件时,将style.css保存在本地浏览器缓存中,下次客户端只请求没有style.css的page.html,哪个客户端从本地获取高速缓存中。

感谢您的帮助。

0 个答案:

没有答案