美文网首页
HTTP缓存

HTTP缓存

作者: 清苑折纸 | 来源:发表于2021-03-08 23:52 被阅读0次

与HTTP缓存有关的首部字段:


image.png

在HTTP1.0时代客户端缓存的方式可以通过pragma和Expires控制

Pragma:

当值设置为no-cache时,客户端不使用缓存。

Expires:

值为一个GMT(格林尼治时间),用来告诉浏览器缓存过期时间,该时间是相对服务器时间而言的,如果客户端和服务器时间不一致则缓存时间可能就会失去作用。

Cache-Control

HTTP1.1时代新增了Cache-Control来解决Expires客户端与服务器时间不一致的问题,一般是用‘max-age=1000’用来表示1000秒之后缓存过期。

以上三个字段优先级顺序为:Pragma->Cache-Control->Expires

  • 上述三种首部字段均能决定客户端是否向服务器发送请求,但是如果缓存到期时服务器端的数据并未被修改过,那么我们依旧要花费带宽和时间来重新获取数据。为让客户端和服务器端实现缓存文件更新验证、提升缓存复用率,HTTP1.1新增了Last-Modified和ETag来解决这件事。

Last-Modified:

服务器将资源传递给客户端时会将资源最后修改时间以‘Last-Modified:GMT’的形式加在实体首部一同发给客户端。客户端再次请求资源时会将该信息一同发给服务器,如果该值与服务器端一致则返回304,内容为空,依旧使用缓存,若与服务器端不一致则发送资源,返回200.但是当资源修改了,但是实际内容没有改变时,服务器仍然会发送资源给客户端。

ETag:

为解决Last-Modified可能存在的不准确的问题,HTTP1.1还推出了ETag首部字段,服务器会通过某种算法给资源得出一个唯一标识符,把资源发给客户端时会将该字段放在实体首部一起发给客户端。客户端下次请求资源时会将该字段一起发送给服务器进行匹配。

相关文章

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