简事二三 之 http缓存机制

http缓存相关概念:

请求头:浏览器向服务器发送请求的数据,资源

响应头:服务器向浏览器相应数据,告诉浏览器我是谁,我要怎么做。如,我是nginx,给你的资源是正确的200 还是错误的404,我告诉你需要缓存多久。

缓存优先级: pragma → cache-control → expires → ETag → last-modified

Http1.0: Pragma(已废弃), expires

Http1.1: Cache-control, ETag, Last-Modified

http缓存可以分为两类: 强制缓存,协商缓存

  1. 强制缓存:expires, Cache-control
    1). Expires: 缓存过期时间,GMT时间,以客户端时间作为参考
    2). Cache-control: 相对时间,属性值分为:
    1. Private:仅允许客户端缓存
    2. Public:客户端和代理服务器都可以缓存
    3. Max-age=xxx:缓存内容将于xxx秒后失效
    4. No-cache:需要使用协商缓存来验证缓存数据
    5. No-store:所有内容都不会缓存,强制缓存、协商缓存都不会触发

  2. 协商缓存:Last-Modified, ETag
    1)Last-Modified:定义上一次修改时间,再次请求时带请求头if-modified-since,与服务器进行对比
    2)ETag:加密字符串,再次请求时带请求头if-none-match,与服务器对比

对于强制缓存,服务器通知浏览器一个缓存时间,在缓存时间内,下次请求直接用缓存,不在时间内则执行协商缓存策略。

对于协商策略,将缓存信息中的ETag和Last-Modified通过请求发送给服务器,有服务器校验,返回304状态码时,浏览器直接使用缓存。

浏览器第一次请求:

浏览器请求 -> 无缓存 -> 向web服务器请求 -> 请求响应,缓存协商 -> 呈现

浏览器再次请求:


常见的请求头:


常见的响应头:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值