http缓存

  1. 什么是缓存?

浏览器缓存(Brower Caching)是浏览器对之前请求过的文件进行缓存,以便下一次访问时重复使用,节省带宽,提高访问速度,降低服务器压力

http缓存机制主要在http响应头中设定,响应头中相关字段为(强制缓存)Expires、Cache-Control、(协商缓存) Last-Modified、Etag。

2,为什么需要使用HTTP缓存?

在输入网址到加载页面的过程中,一般会经过CPU计算、页面渲染以及网络请求等过程,其中网络请求是唯一不确定的因素,会受到环境因素的影响。所以需要HTTP缓存减少网络请求,以至于页面能够快速渲染。

// Cache-Control中可以设置

// (1) max-age:用来设置资源(representations)可以被缓存多长时间,单位为秒;

// (2) s-maxage:和max-age是一样的,不过它只针对代理服务器缓存而言;

// (3)public:指示响应可被任何缓存区缓存;

// (4)private:只能针对个人用户,而不能被代理服务器缓存;

// (5)no-cache:强制客户端直接向服务器发送请求,也就是说每次请求都必须向服务器发送。服务器接收到请求,然后判断资源是否变更,是则返回新内容,否则返回304,未变更。这个很容易让人产生误解,使人误以为是响应不被缓存。实际上Cache-Control:no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。

// (6)no-store:禁止一切缓存(这个才是响应不被缓存的意思)。

// 强缓存:浏览器不会向服务器发送任何请求,直接从本地缓存中读取文件并返回Status Code: 200 OK

// 协商缓存: 向服务器发送请求,服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源;

// 协商缓存 协商缓存是要走服务端的,如果请求某个资源,去请求服务端时,发现命中缓存则返回304,否则则返回所请求的资源

// Last-Modified,If-Modified-Since 比较最后一次修改时间进行比较 ,来确定资源是否修改了

// Etag,If-None-Match 对比资源内容,来确定资源是否修改

// 那我们要怎么比对资源内容呢?我们只需要读取资源内容,转成hash值,前后进行比对就行了!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值