HTTP协议学习笔记七

本文深入探讨了缓存的基本原理,包括缓存命中、未命中、再验证的过程,并介绍了两级缓存结构。此外还讲解了如何利用HTTP首部实现文档过期管理和服务器再验证,以及实体标签(ETag)的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓存

1.缓存的命中,未命中,再验证,如图:



对已缓存的对象进行再验证,常用的是If-Modified-Since首部,如图(服务器对象未被修改,会响应304):


2.一个两级缓存的层次结构,如图:


3.保持已缓存数据与服务器一致,HTTP将这些机制称为文档过期服务器再验证,如图:


文档过期,通过特殊的HTTPCache-Control首部和Expires首部,让原始服务器向每个文档加了一个“过期时间”,如图:



服务器再验证,如果验证显示内容发生了变化,缓存会获取一份新的文档副本,并将其存储在旧文档的位置上,然后将文档发送给客户端。

如果再验证显示内容没有发生变化,缓存只需获取新的首部,包括一个新的过期日期,并对缓存中的首部进行更新就好了。


还可以用If-None-Match(实体标签再验证),HTTP允许用户对被称为实体标签(ETag)的“版本标识符”进行比较,如图:



可以在If-None-Match首部包含几个实体标签,告诉服务器带有这些实体标签的对象副本在缓存上已经有了,例:

If-None-Match:"v2.4","v2.5","v2.6"






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值