Page 183 - HTTP权威指南
P. 183
图中发生的情况如下所示。
• 在第 (1) 步中,用户向浏览器的 URI 窗口中输入 oreilly。浏览器用 oreilly 作为主
机名,并假定默认方案为 http://,默认端口为 80,默认路径为“/”。
148 • 在第 (2a) 步中,浏览器会去查找主机 oreilly。查找失败了。
• 在第 (3a) 步中,浏览器对主机名进行自动扩展,请求 DNS 解析 www.oreilly.
com。这次成功了。
• 然后,浏览器成功地连接 www.oreilly.com。
6.5.8 有显式代理时URI的解析
使用显式代理时,用户的 URI 会被直接发送给代理,所以浏览器就不再执行所有这
些便捷的扩展功能了。
如图 6-17 所示,有显式代理时,浏览器没有对不完整的主机名进行自动扩展。因
此,当用户在浏览器的地址窗口中输入 oreilly 时,发送给代理的就是 http://oreilly/
(浏览器添加了默认方案和路径,但主机名和输入的一样)。
(4a)中发送的请求报文
(2a)已经显式地配置了
代理,所以浏览器会用DNS GET http://oreilly/ HTTP/1.0
去搜索代理服务器的地址 Proxy-connection: Keep-Alive
User-agent: Mozilla/4.72[en] (Win98:I)
Host: oreilly
(2b)成功!获取代 Accept: */*
理服务器的IP地址 Accept-encoding: gzip
Accept-language: en
Accept-charset: iso-8859-1,*,utf-8
DNS服务器
(1)用户在浏览器的 (4b)客户端没有进行自动扩展,所以代
URI地址窗口输入oreilly 理在请求中得到的是不完整主机名
(3a)浏览器试图连接代理
(3b)成功;连接建立起来了
(4a)浏览器发送HTTP请求
客户端 代理 www.oreilly.com
(3a)浏览器进行自动扩展,
将“oreilly”转换成www.oreilly.com
图 6-17 有显式代理时,浏览器不会对不完整主机名进行自动扩展
因此,有些代理会尽力尝试着去模仿浏览器的便捷服务,包括 www...com 自动扩
展,以及添加本地域名后缀。 12
注 12: 但对得到广泛共享的代理来说,知道单个用户的正确域名后缀基本上是不可能的。
156 | 第 6 章