美文网首页
HTTP缓存

HTTP缓存

作者: 枫丶筱 | 来源:发表于2018-08-06 10:42 被阅读13次

http缓存

分享文章:https://www.cnblogs.com/chenqf/p/6386163.html

Cache-control

Cache-control 是HTTP/1.1 定义,取代了之前的Expires(过期时间),
重要的参数:

  • "max-age = <seconds>"
    设置指令从请求开始,允许响应被重用的时间,不向服务器发送请求,直接取浏览器缓存.

  • public
    表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存,不是必须.声明max-age就OK

  • private
    表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)

  • no-store
    直接禁止浏览器以及中间代理缓存,每次都下载完整的响应

  • no-cache
    在使用已存储的缓存数据前,发送带验证器(ETag)的请求到服务器.

ETag

服务器通过某种算法,给资源计算出一个标识符,返回响应时在头部加上"Etag:唯一标识符",客户端保留Etag字段,下次请求时通过请求头 "If-None-Match: ETag-value"后端校验相同就直接回送304,告诉浏览器使用缓存.浏览器会替我们完成所有工作:它会自动检测之前是否指定了验证令牌,它会将验证令牌追加到发出的请求上,并且它会根据从服务器接收的响应在必要时更新缓存时间戳,我们唯一要做的就是确保服务器提供必要的 ETag 令牌。

Last-Modified

服务器将资源传递给客户端时,会将资源最后更改的时间以“Last-Modified: GMT”的形式加在实体首部上一起返回给客户端。
客户端会为资源标记上该信息,下次再次请求时,会把该信息附带在"If-Modified-Since: Last-Modified-value"一并带给服务器去做检查,若传递的时间值与服务器上该资源最终修改时间是一致的,则说明该资源没有被修改过,直接返回304。

如果 Last-Modified 和 ETag 同时被使用,则要求它们的验证都必须通过才会返回304,若其中某个验证没通过,则服务器会按常规返回资源实体及200状态码。

相关文章

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