Page 208 - HTTP权威指南
P. 208
7.7 缓存的处理步骤
现代的商业化代理缓存相当地复杂。这些缓存构建得非常高效,可以支持 HTTP 和
其他一些技术的各种高级特性。但除了一些微妙的细节之外,Web 缓存的基本工作
原理大多很简单。对一条 HTTP GET 报文的基本缓存处理过程包括 7 个步骤(参见
图 7-11)。
(1) 接收——缓存从网络中读取抵达的请求报文。
(2) 解析——缓存对报文进行解析,提取出 URL 和各种首部。 171
(3) 查询——缓存查看是否有本地副本可用,如果没有,就获取一份副本(并将其保
存在本地)。
(4) 新鲜度检测——缓存查看已缓存副本是否足够新鲜,如果不是,就询问服务器是
否有任何更新。
(5) 创建响应——缓存会用新的首部和已缓存的主体来构建一条响应报文。
(6) 发送——缓存通过网络将响应发回给客户端。
(7) 日志——缓存可选地创建一个日志文件条目来描述这个事务。
GET /www.joes-hardware.com/index.html HTTP/1.1
User-agent: Superbrowser 2.0
Host: www.joes-hardware.com
Accept: *.*
(1)接收HTTP请求报文
(2)对报文进行解析 (3)缓存
中有吗?
(5)创建响应首部
客户端 新 服务器 是的 服务器 服务器
首部 首部 首部
主体 是的 主体 主体
(4)新鲜吗?
缓存
(6)发送响应
HTTP/1.1 200 OK
Content-length: 2140
Content-type: text/html
Cache-control: max-age=86400
Age: 21562
Via: ...
<HEAD><TITLE>Joe’s Hardware Home Page</TITLE></HEAD>
<BODY><H1>Welcome to Joe's Hardware</H1>...
图 7-11 处理一个新鲜的缓存命中
7.7.1 第一步——接收
在第一步中,缓存检测到一条网络连接上的活动,读取输入数据。高性能的缓存会
缓 存 | 181