美文网首页
HTTP缓存

HTTP缓存

作者: Vivian_0430 | 来源:发表于2020-08-14 09:52 被阅读0次

缓存类型:(私有缓存与共享(代理)缓存)

  1. 浏览器缓存:私有缓存
    localStorage;
    sessionStorage;
    cookies;
    indexedDB;
    WebSQL;
    http缓存;
    DNS缓存:域名解析返回了正确的IP,系统会临时把这个返回结果存储起来;
  2. 服务器缓存:
    CDN缓存;
    反向代理缓存;
    负载均衡器;
    网关缓存;
  3. 数据库缓存:
    在业务服务器和数据库之间增加缓存服务器redis;
    数据库把数据临时存储在数据库的一个位置,再次发起相同请求时直接返回对应数据,不用对数据库进行重新查询;
    缓存目的:
    缓解服务器端压力,提升效率;减少等待时间,节约带宽;
    HTTP缓存:
    http缓存只能存储GET响应
    HTTP/1.1缓存控制:
  4. Cache-Control:请求头和响应头都支持这个属性
    no-store:没有缓存,缓存中不得存储任何关于客户端请求和服务器端响应的内容;
    no-cache:缓存但重新验证,客户端发出请求,缓存将带有验证的请求发送给服务器端,服务器端验证请求中的缓存是否过期,未过期返回304,缓存才使用本地缓存副本;
    private:私有缓存,不能被中间代理,CDN缓存;
    public:公共缓存;
    max-age=<seconds>:过期时间;
    must-revalidate:验证缓存是否过期;
  5. Pragma:向后兼容基于HTTP/1.1的客户端,响应头中没有明确定义
    缓存驱逐:
    由于缓存只有有限的空间用于存储资源副本,所以缓存会定期地将一些副本删除。
    新鲜度:
    过期时间
    本地检索到一个对应的陈旧资源(缓存副本),缓存将请求带有If-No-Match头发送给服务器端,服务器端返回304,则表示缓存副本为新鲜的
    服务器通过 If-None-Match 或 If-Modified-Since判断后发现已过期,那么会带有该资源的实体内容返回
    改进资源
    缓存验证:
    用户点击刷新按钮会开始缓存验证;
    缓存的响应头带有Cache-control: must-revalidate;
    浏览器偏好设置里设置Advanced->Cache为强制验证缓存。
    当缓存的文档过期之后,需要进行缓存验证或者重新获取资源,服务器端返回校验器才开始验证。
    ETags:强校验器
    Etag的值对中间代理User Agent是不透明的一个值,如果响应头中带有Etag,请求时可以带上If-None-Match来验证缓存
    Last-Modified:弱校验器(只精确到秒)
    如果响应头中带有Last-Modified,请求时可以带上If-Modified-Since来验证缓存
    当向服务端发起缓存校验时,服务端会返回http状态码,200 ok表示正常的结果或者304 not modified表示可以从本地缓存文件获取资源,304的响应头同时也可以更新缓存文档的过期时间。
    Vary响应:
    当缓存服务器收到一个请求,只有当前的请求和原始(缓存)的请求头跟缓存的响应头里的Vary都匹配,才能使用缓存的响应。

相关文章

  • HTTP缓存原理

    什么是HTTP缓存 HTTP缓存通常指浏览器缓存,基于HTTP中header字段实现HTTP缓存分为强缓存和协商缓...

  • 前端缓存

    前端缓存 前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务...

  • 前端缓存详解

    一、前言 前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务...

  • PWA笔记一:Web的万物基础缓存

    前言 这里讨论的缓存包括两种,一种是HTTP缓存,一种是Service Worker缓存。 HTTP缓存 HTTP...

  • 前端缓存的理解 或者 前端数据持久化的理解(强制缓存、协商缓存)

    前端缓存分为HTTP缓存和浏览器缓存 其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而...

  • http缓存和各个版本差异理解

    http缓存我们可以通过设置http头部属性来对资源进行缓存,资源缓存分为强制缓存和协商缓存 强制缓存expire...

  • http缓存

    http缓存分为强制缓存和对比缓存 强制缓存时, 客户端先判断本地缓存是否有效(http/1.1通过Cache-C...

  • HTTP缓存

    缓存控制Cache-Control Cache-Control是Web性能优化的一种,能加速HTTP请求与响应。 ...

  • http缓存

    来源: 《http权威指南》学一个东西,怎么去学习呢?这分为三个步骤,是什么, 为什么, 怎么做?文章我会着重讲怎...

  • Http缓存

    参考文章:http://oohcode.com/2015/05/28/http-cache/ 客户端 头字段: C...

网友评论

      本文标题:HTTP缓存

      本文链接:https://www.haomeiwen.com/subject/fgfbdktx.html