代理
1.代理URI与服务器URI的不同:
客户端向服务器发送请求时,请求行中只包含部分URI(没有反感,主机,端口)如下:
GET /index.html HTTP/1.0
User-Agent: SuperBrowser v1.3
但是当客户端向代理发送请求时,请求航中包含完整的URI,如下:
GET http://www.abc.com/index.html HTTP/1.0
User-Agent: SuperBrowser v1.3
因为原始的HTTP设计中,客户端会直接与单个服务器进行对话,单个服务器都知道自己的主机名和端口,所以为了避免
发送冗余信息,客户端只发送部分URI即可,但是代理出现后,代理需要知道目标服务器的名称,这样他们才能建立自己
与服务器的连接。
2.URI的客户端自动扩展和主机名的解析
如图:
第(1)步:用户向浏览器的URI窗口中输入oreilly,浏览器用oreilly作为主机名,并假定默认方案为http://,默认端口80,默认路径为/
第(2a)步:浏览器通过DNS去查找主机的oreilly,查找失败了
第(3a)步:浏览器对主机名进行自动扩展,请求DNS解析www.oreilly.com,成功连接
3.追踪报文
Via首部字段列出了报文途经每个中间节点(代理或网关)有关信息,如图:
TRACE方法可以对请求相应进行追踪,如图:
Max-Forwards首部包含一个整数,限制请求报文被转发的次数