Page 521 - HTTP权威指南
P. 521

CARP 协议实现上的一些技术细节。

               ICP 中出现缓存未命中时,代理服务器会用 ICP 报文格式来查询附近的缓存,以确
               定 Web 对象是否存在。附近的缓存会以 HIT 或 MISS 进行响应,请求代理服务器会
               用这些响应来选择能够获取到对象的最适当的位置。如果 ICP 代理服务器是以层次
               结构排列的,未命中的查询会被提交给其父代理。图 20-13 以图形方式显示了如何
               通过 ICP 来解决命中和未命中的问题。





                        命中或未命中应答
                          (时间n+1)
                                     兄弟代理
                                       轮询(时间n)   如果兄弟代理都返回未命中,

                                                 就去轮询该代理的上一级代理


                        客户端请求               请求(时间n+2)                    因特网
                  浏览器               缓存代理                父代理





                                        轮询(时间n)
                        命中或未命中应答
                          (时间n+1)
                                     兄弟代理



               图 20-13 ICP 查询
         475   注意,通过 ICP 协议连接起来的每个代理服务器都是将内容进行了冗余镜像的独立
               缓存服务器,这就说明在不同的代理服务器之间复制 Web 对象条目是可行的。相
               反,用 CARP 连接起来的一组服务器会被当作一个大型的服务器,其中每个组件服
               务器都只包含全部缓存文档中的一部分。通过对某个 Web 对象的 URL 应用散列函
               数,CARP 就可以将此对象映射到特定的代理服务器上去。每个 Web 对象都有一个
               唯一的家,所以我们可以通过单次查找确定对象的位置,而无须去查询集合中配置
               的每个代理服务器。图 20-14 总结了 CARP 重定向的方式。









               498   |   第 20 章
   516   517   518   519   520   521   522   523   524   525   526