美文网首页
HTTP缓存

HTTP缓存

作者: 小石头糖糖 | 来源:发表于2021-04-04 08:37 被阅读0次

一、概念

当浏览器加载一个html页面时,html中引入的外部资源也会被加载,其中包括一些不经常改变的css、js等静态资源,会耗费性能、影响首屏加载速度等不好的用户体验,从而提出缓存的概念,将不必要每次都重新加载的资源缓存到浏览器中,从缓存中读取这部分数据;

二、分类

强缓存协商缓存

三、强缓存

  1. 定义:不去请求资源,只从缓存中读取;
  2. 弊端:当被缓存的资源有修改的时候,客户端不能随之响应;
  3. 使用条件:
    在http1.0中expires存在的意义, 当客户端发送的时间戳与后端返回的expires时间不一致时,使用强缓存;
  4. expires的不足:
    客户端时间可以自定义,或客户端与服务器端时间快慢有差导致判断不够准确;
  5. cache-control:
    为弥补expires的不足,http1.1中添加cache-control(优先级高于expries), 其中包含no-cache、no-store、private、public、max-age等(如max-age设置20s后过期)。
  6. no-cache和no-store:
    expires和cache-control都可以直接从本地缓存判断是否需要重新请求资源,但当设置no-cache和no-store后,本地缓存暂时被忽略,需要先请求服务器端询问是否需要请求资源。如果返回200,则继续使用本地缓存;如果返回304,则采用协商缓存。

四、协商缓存

如果过期了,返回200+新的资源,否则返回304

  1. last-modified & if-modified-since: 通过比较时间戳
  2. etag & if-none-match:通过比较内容(一般都返回内容摘要hash)
    (需配合使用才有效)

相关文章

  • 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/ncgkkltx.html