HTTP协议学习笔记七

来源:互联网 发布:hibernate 数据库配置 编辑:程序博客网 时间:2024/05/18 02:18

缓存

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"






0 0