前端缓存之HTTP缓存(二)

1.1 什么是HTTP缓存?

HTTP缓存:当客户端向服务端请求资源时,会先去到浏览器缓存,如果浏览器缓存有需要请求资源的副本,就可以直接从浏览器缓存中提取,而不会去到服务器。

常见的http缓存都只能缓存get方式请求响应的资源,不能处理其他类型的响应。

HTTP缓存都是从第二次请求开始的,当第一次请求资源时,服务器会返回资源,并在请求头中传回资源的缓存参数;第二次请求时,浏览器会对这些参数进行判断,命中强缓存的就返回200,不命中会把请求参数加到请求头中传给服务器,判断是否命中协商缓存,命中协商缓存返回304(简单点来说就是服务端已经执行了GET,但文件未发生变化),否则服务器会返回新的资源。

而HTTP缓存分为强缓存和协商缓存。强缓存如果生效,不需要再和服务器发生交互,而协商缓存不管是否生效,都需要与服务端发生交互。

1.1.1 强缓存

强缓存在缓存数据未失效的情况下(即Cache-Control的max-age没有过期或者Expires的缓存时间没有过期),那么就会直接使用浏览器的缓存数据,不会再向服务器发送任何请求。强制缓存生效时,http状态码为200。这个方式页面加载的速度很快,性能好,但是在这期间,如果服务端的资源修改了,页面上是无法获取的,因为它不会再向服务器发送请求了。就好比如我们在实际开发中,修改了某个页面的样式,在页面上刷新但修改的内容没有生效,因为使用的是强缓存,这时候就需要Ctrl+F5。

header属性:

  • Pragma(HTTP/1.0)

    • no-cache:不直接使用缓存,根据新鲜度来使用缓存,

      响应头不支持这个属性,优先级最高,但在HTTP/1.1废弃了

  • Cache-Control(HTTP/1.1)

    • no-cache:不直接使用缓存,根据新鲜度来使用缓存

    • no-store:不使用缓存,每次都是请求下载新资源

    • max-age:缓存时长

    • public/private:是否只能被

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值