IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> HTTP缓存 -> 正文阅读

[网络协议]HTTP缓存

概念

什么是缓存?

比如当你访问一个新的网址的时候,就要给服务端发送请求,服务端就会把该网址的所有数据(比如css、js、json)返回给你。但是当你再访问该网站的时候,服务器再把这个网址的所有数据返回给你,那这个行为就没有必要了。所以,缓存的作用就是在第一次访问该网址的时候,把数据暂存在本地,当你再次访问的时候,直接在本地缓存读取即可,减少时间和资源的浪费,让页面加载渲染更快。

类别

HTTP缓存有哪些呢?主要分为强制缓存协商缓存

强制缓存

强制缓存不会向服务器发送请求,直接从本地缓存中读取资源

一、初次访问

浏览器第一次要访问一个网址的时候,它首先会向服务器发送请求,当服务器接成功收到该请求的时候,会返回资源和Cache-Control给浏览器,浏览器完成页面加载和渲染。再服务器响应浏览器的请求之前,服务器会判断该资源是否需要缓存,如果该资源需要缓存,则会通过请求头携带Cache-Control进行强制缓存。

在这里跟大家说一下,cache-control:max-age=31536000(秒)的意思缓存一年

二、再次访问

当浏览器再次访问该网址时,浏览器首先会判断cache-control里面的max-age属性是否过期,意思是说有没有超过缓存的时间,如果没有,本地缓存就会返回数据给浏览器,完成页面的加载与渲染。

强制缓存的作用就是可以初次加载页面以后,?如果服务器的响应头有cache-control,再次访问页面的时候,就不需要再向服务器发送请求,不经过网络,克服网络请求的不稳定性,直接在本地缓存取数据即可。

三、缓存过期

当缓存失效的时候(cache-control的时间到了),浏览器会向服务器重新发送请求,服务器再返回资源给浏览器。

?在这里给大家补充一下知识点,cache-control有哪些值?

max-age

缓存最大过期的时间
no-catch不需要强制缓存
no-store不需要本地缓存且不需要服务端的缓存措施
private只允许最终用户缓存
public可允许中间路由或代理作为缓存

协商缓存?

协商缓存回向服务器发送请求,服务端通过判断客户端的资源与服务端的资源是否一样,一致的话返回状态码304,否则返回状态码200和最新的资源

一、运作流程

浏览器想访问一个新的网页,首先会向服务端发送请求,服务端收到请求以后,返回资源和资源标识,这里的资源标识相当于商品的条形码,也就是标记这个资源的一个符号。当浏览器再次请求的时候会带上这个资源标识,服务端就会根据这个标识判断,这个资源是否是当前最新的资源,是的话就返回304,否则返回最新的资源,200状态码和最新的资源标识。

?二、资源标识

刚才已经提到,通过协商缓存,服务端会给浏览器返回一个资源标识,那么资源标识主要通过响应头来携带的,有两种。

1.Last-Modified资源的最后修改时间

2.Etag资源唯一标识(一个字符串,相当于商品的条形码)

?我们来看一下使用协商缓存的资源状况:

?我们由此看见,命中缓存是一个很高效的缓存方式,第二次收到服务器响应的时候,携带的资源容量远远要比第一次小很多。

两者结合起来整个思维导图给大家看看

?页面刷新影响

?最后给大家说说页面刷新对http的影响

刷新方式操作方式缓存策略
正常刷新跳转连接,前进后退都有效
手动刷新F5,右击菜单刷新强缓存失效,协商缓存有效
强刷新ctrl+F5都失效

今天你学废了吗??

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:33:50  更:2022-02-19 01:34:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:02:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码