java android 响应码304_HTTP状态代码200(缓存)与状态代码304之间有什么区别?

对于你的上一个问题,为什么?我会尝试用我所知道的解释

用外行人的术语简要解释这三个状态代码 .

200 - 成功(浏览器请求并从服务器获取文件)

如果在服务器中启用了缓存

200(来自内存缓存) - 在浏览器中找到的文件,因此浏览器不会从服务器请求

304 - 浏览器请求文件但服务器拒绝该文件

对于某些文件,浏览器决定从服务器请求,而某些文件决定从存储(缓存)文件中读取 . 为什么是这样 ?每个文件都有一个到期日,所以

如果文件未过期,则浏览器将使用缓存(200缓存) .

如果文件已过期,浏览器会向服务器请求文件 . 两个位置(浏览器和服务器)的服务器检查文件 . 如果找到相同的文件,则服务器拒绝该请求 . 根据协议浏览器使用现有文件 .

看看这个nginx配置

location / {

add_header Cache-Control must-revalidate;

expires 60;

etag on;

...

}

此处的到期时间设置为60秒,因此所有静态文件都会缓存60秒 . 因此,如果您在60秒内再次请求文件,浏览器将从内存中读取(200内存) . 如果你在60秒后请求浏览器请求服务器(304) .

我假设文件在60秒后没有改变,在这种情况下你会得到200(即更新的文件将从服务器获取) .

因此,如果服务器配置了不同的过期和缓存标头(策略),则状态可能不同 .

在你使用cdn的情况下,cdn的主要目的是高可用性和快速交付 . 因此他们使用多个服务器 . 即使文件看起来像是在同一目录中,但如果这些服务器具有不同的配置,cdn可能会使用多个服务器来提供u内容 . 然后这些状态可能会改变 . 希望能帮助到你 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值