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

 

转载于:https://www.cnblogs.com/personnel/p/4583302.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浏览器会自动将 JavaScript 文件、CSS 文件、图像等缓存到本地磁盘上的“磁盘缓存”中,以便下次访问同一页面时可以更快地加载资源。但是,可以通过设置 HTTP 响应头来控制浏览器缓存的行为。 以下是一些常用的 HTTP 响应头: 1. Cache-Control:指定缓存策略,如 no-cache、max-age 等。 2. Expires:指定过期时间,如 Expires: Fri, 30 Oct 2020 14:19:41 GMT。 3. ETag:指定资源的唯一标识符,用于验证资源是否已经过期。 4. Last-Modified:指定资源的最后修改时间,用于验证资源是否已经过期。 具体的设置方法可以参考以下示例: 1. 对于静态资源,如 CSS 文件、JavaScript 文件、图像等,可以在服务器端设置缓存策略和过期时间。例如,在 Apache 服务器上,可以使用 .htaccess 文件来设置缓存策略和过期时间: ``` <FilesMatch "\.(css|js|png|jpg|jpeg|gif|ico)$"> Header set Cache-Control "max-age=86400, public" Header set Expires "Thu, 01 Jan 2099 00:00:00 GMT" </FilesMatch> ``` 上述代码会将所有以 .css、.js、.png、.jpg、.jpeg、.gif、.ico 结尾的文件缓存一天,并且在 2099 年过期。 2. 对于动态资源,如 HTML 文件,可以在服务器端设置 HTTP 响应头来控制浏览器缓存。例如,在 PHP 中,可以使用以下代码来设置 HTTP 响应头: ``` header('Cache-Control: max-age=86400, public'); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT'); ``` 上述代码会将当前页面缓存一天,并且在 24 小时后过期。 需要注意的是,缓存策略和过期时间的设置应该根据具体需求来确定,不应该过于激进,否则可能会导致缓存不起作用或者缓存时间过长而无法及时更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值