HTTP 返回的状态码 != 200 ,浏览器不会将返回的内容缓存到本地磁盘上

今天无意发现的,以前处理HTTP State = 404或403之类的,都是直接返回 HTTP 200 OK,然后加一个缓存设置,例如: Cache-Control: max-age=3600

 

最近修改为 404 错误就直接返回 HTTP 404 Not Found, 缓存没变,还是 Cache-Control: max-age=3600,但我在IE的临时文件夹查看文件缓存时发现IE对返回的HTTP状态码:404或403不进行内容缓存到磁盘。

 

Firefox对返回的HTTP状态码:404或403,通过about:cache查看缓存时发现:

缓存的到期时间:1970年,也就是不会将返回的内容缓存到磁盘上。

 

在进行一些带宽优化的时候,需要注意一下。

如果经常会返回404或403之类的,但又为了节省带宽资源,希望浏览器缓存的话,可以有两种选择:

1. 返回的状态码强制设置为202,同时加上Cache-Control: max-age=xxx,这样浏览器就会将返回的内容保存到磁盘上。

2. 在返回404之类的状态码的同时加上一个Location: 指令,跳转到另一个比如404.html页面,同时对这个页面进行缓存,这样虽然多了一道跳转,但也有可能会节省一定的带宽资源。

 

2012-07-21

 

posted @ 2015-06-17 14:48  personnel  阅读(664)  评论(0编辑  收藏  举报
友情链接:图片批量处理工具 gif动态图制作工具 制作电子相册 图片排版工具 制作淘宝主图视频 MKScript 鼠标键盘自动化脚本语言