HTTP缓存

本文深入探讨了Web缓存的工作原理及其在浏览器端的应用。介绍了HTTP协议中的缓存规则,包括如何利用HTML Meta标签和HTTP头部信息来控制缓存行为。此外还详细解释了缓存的再验证过程。

最近一直效率不高,希望以后能改正。

1. Web缓存的工作原理

所有的缓存都是基于一套规则来帮助他们决定什么时候使用缓存中的副本提供服务(假设有副本可用的情况下,未被销毁回收或者未被删除修改)。这些规则有的在协议中有定义(如HTTP协议1.0和1.1),有的则是由缓存的管理员设置(如DBA、浏览器的用户、代理服务器管理员或者应用开发者)

2.浏览器端的缓存规则

浏览器缓存机制,是一个很大的话题,详见九种浏览器端缓存机制概览 。但其中比较重要的是HTTP协议定义的缓存机制。这些规则是在HTML页面的Meta标签中HTTP协议头中定义的。

2.1 使用HTML Meta 标签

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。
可以通过这个页面测试你的浏览器是否支持:Pragma No-Cache Test

2.2 使用缓存有关的HTTP消息报头

一个URI的完整HTTP协议交互过程是由HTTP请求和HTTP响应组成的。有关HTTP详细内容可参考《HTTP协议详解》
一个缓存GET请求的具体流程如下图(图源于《http权威指南》):
这里写图片描述
总的来说,客户端从服务器请求数据经历如下基本步骤:

  1. 检查是否已缓存:如果请求命中本地缓存则从本地缓存中获取一个对应资源的副本;

  2. 检查这个资源是否新鲜:是则直接返回到客户端,否则继续向服务器转发请求,进行再验证。

  3. 再验证阶段:服务器接收到请求,然后再验证判断资源是否相同,是则返回304 not modified,未变更。

  4. 否则返回新内容和200状态码。 客户端更新本地缓存。

3.具体步骤

Stage1: 检查缓存

Stage2:检查资源是否新鲜

Stage3: 服务器再验证

参考
待续…

如何缓存
浏览器的缓存机制
怎么不发送请求,就能使用缓存
浏览器如何实现图片缓存
浏览器缓存种类、区别与使用细节

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值