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
   203   204   205   206   207   208   209   210   211   212   213