Han*_*ank 194 caching http cache-control httpwebrequest http-status-codes
我正在使用谷歌的"Page Speed"插件来访问我的网站.
我页面上的一些组件表示为HTTP状态:
200 200(缓存)304
通过谷歌的"页面速度".
我困惑的是200(缓存)和304之间的区别.
我已多次刷新页面(但尚未清除我的缓存),似乎我的favicon.ico和一些图像状态= 200(缓存),而其他一些图像是http状态304.
我不明白为什么不同.
更新:
使用Google"Page Speed",我收到了http://example.com/favicon.ico的"200(缓存)" 以及http://cdn.example.com/js/ga.js
但是,我收到http://cdn.example.com/js/combined.min.js的http状态"304"
我不明白为什么我有两个JavaScript文件位于同一目录/ js /中,一个返回http状态304,另一个返回200(缓存)状态代码.
Ben*_*pan 214
代码为"200(缓存)"的项目直接从您的浏览器缓存中完成,这意味着返回的项目的原始请求带有标题,指示浏览器可以缓存它们(例如,将来日期Expires或Cache-Control: max-age标题),以及在您触发新请求的时候,这些缓存的对象仍然存储在本地缓存中并且尚未过期.
另一方面,304s是服务器在浏览器检查文件是否自其缓存的最后一个版本(答案为"否")后是否被修改后的响应.
对于最佳的Web性能,您最好为所有资产设置远期Expires:或Cache-Control: max-age标题,然后在需要更改资产时,更改资产的实际文件名或将版本字符串附加到该资产的请求.除非资产已从缓存中的版本明确更改(不需要304响应),否则无需进行任何请求.雅虎 有更多与缓存相关的性能指南,其中包括确保正确配置ETag.
Jam*_*ruk 61
200(缓存)意味着Firefox只使用本地缓存版本.这是最快的,因为没有向Web服务器发出请求.
304表示Firefox正在向Web服务器发送"If-Modified-Since"条件请求.如果自浏览器发送日期以来文件尚未更新,则Web服务器返回304响应,这实际上告诉Firefox使用其缓存版本.它没有200(缓存)那么快,因为请求仍然发送到Web服务器,但服务器不必发送文件的内容.
对于您的上一个问题,我不知道为什么同一目录中的两个JavaScript文件返回不同的结果.
Poo*_*och 18
这让我感到很长时间.我要验证的第一件事是你没有通过点击刷新按钮来重新加载页面,它总是会发出资源的条件请求,并且会为许多页面元素返回304s.而是转到url栏选择页面并按Enter键,就好像刚刚再次键入相同的URL一样,这将为您提供更好地指示正确缓存的内容.本文非常好地解释了条件请求和无条件请求之间的区别以及刷新按钮如何影响它们:http: //blogs.msdn.com/b/ieinternals/archive/2010/07/08/technical-information-about-有条件的HTTP请求和最刷新button.aspx
HTTP 304"未被修改".您的Web服务器基本上是告诉浏览器"自上次请求以来此文件没有更改." 而HTTP 200告诉浏览器"这里是一个成功的响应" - 当它是您的浏览器第一次访问该文件时或第一次访问修改后的副本时应该返回.
有关状态代码的更多信息,请查看http://en.wikipedia.org/wiki/List_of_HTTP_status_codes.
| 归档时间: |
|
| 查看次数: |
163301 次 |
| 最近记录: |