Page 182 - HTTP权威指南
P. 182

的“协议警察”,因为这样可能会严重破坏之前能正常工作的服务。

                 特别是,HTTP 规范禁止一般的拦截代理在转发 URI 时重写其绝对路径部分。唯一
                 的例外是可以用“/”来取代空路径。


                 6.5.6 URI的客户端自动扩展和主机名解析

                 根据是否有代理,浏览器对请求 URI 的解析会有所不同。没有代理时,浏览器会获
                 取你输入的 URI,尝试着寻找相应的 IP 地址。如果找到了主机名,浏览器会尝试相
                 应的 IP 地址直到获得成功的连接为止。                                                         147

                 但是,如果没有找到主机,很多浏览器都会尝试着提供某种主机名自动“扩展”机
                 制,以防用户输入的是主机“简短”的缩写形式(回顾一下 2.3.2 节)。                            11

                 •   很多浏览器会尝试着加入前缀 www. 和后缀 .com,以防用户只输入了常见 Web
                    站点名的中间部分(比如,人们可以输入 yahoo 而不是 www.yahoo.com)。
                 •   有些浏览器甚至会将未解析出来的 URI 传递给第三方站点,这个站点会尝试着
                    校正拼写错误,并给出一些用户可能希望访问的 URI 建议。
                 •   而且,大多数系统中的 DNS 配置允许用户只输入主机名的前缀,然后 DNS 会自
                    动搜索域名。如果用户位于域名 oreilly.com 的范围之内,并输入了主机名 host7,
                    DNS 会自动尝试将其与 host7.oreilly.com 进行匹配。这并不是完整有效的主机名。


                 6.5.7 没有代理时URI的解析

                 图 6-16 显示了一个在没有代理的情况下,浏览器进行主机名自动扩展的例子。在第
                 (2a) ~ (3c) 步中,浏览器会去查找各种主机名,直到找到一个有效主机名为止。

                                       (2a)浏览器通过DNS搜索主机oreilly
                                         č2bĎ失败,未知主机名
                                         (3b)浏览器通过DNS搜索主机“www.oreilly.com”
                                           (3c)成功!取回IP地址
                                                              DNS服务器
                           (1)用户向浏览器的
                           URI地址窗口输入oreilly
                                            (4a)浏览器尝试着连接到一个个IP地址上去,直到成功建立连接为止
                                            č4bĎ成功;连接建立
                                            (5a)浏览器发送HTTP请求
                                            č5bĎ浏览器获取HTTP响应
                                        客户端                               www.oreilly.com
                            (3a)浏览器进行自动扩展,将
                            oreilly转换成www.oreilly.com
                 图 6-16 没有提供显式的代理时,浏览器会对部分主机名进行自动扩展


                 注 11:  当你输入 yahoo 时,大多数浏览器都会自动将其扩展为 www.yahoo.com。类似地,浏览器允许用户
                      省略前缀 http://,如果省略了浏览器会自行插入。

                                                                               代 理   |   155
   177   178   179   180   181   182   183   184   185   186   187