代理
2018-12-10 本文已影响0人
全汪汪
代理是什么
客户端和服务端沟通最直接的方式就是双方直接通过报文来直接沟通,但在越来越丰富的网络情况下,客户端和服务端往往隔着很多个其他HTTP实体,而代理就是其中一个,代理往往可以增添更多的网络服务,因此现在网络上大多是通过代理来转发请求或响应报文的。
代理的分类
代理根据不同的功能可以分成很多类型:如防火墙,缓存代理,内容代理,拦截代理等。
连接代理
连接代理手段也很多,如直接在客户端上修改,又或者修改DNS的命名空间,又或者在服务端修改,访问的时候直接要求重定向。
访问代理
我们平时访问服务器时往往会带相对URI去访问,因为前提是我们已经知道要访问服务器的IP地址和端口的,但访问代理时,代理往往根据你内容的不同来定向到不同的服务器里去,所以如果代理不做任何处理的情况下接收到相对URI就会引起一些问题。普通情况下如果我们知道代理的存在就应该请求的时候带上绝对URI,但在一些情况下(如有我们不知道的拦截代理)我们无法得知代理的存在,我们就会发生相对URI。因此代理应该处理好获得相对URI的情况,并采取一定的策略来找到相应的资源。
追踪报文
提到代理我们就自然而然要明白追踪报文。追踪报文可以使响应报文中含有Via首部并能从中看到经过每跳时候的信息。因为追踪报文每过一跳的时候,就会往报文里添加Via信息,因此最终收到响应报文,可通过看Via头部来观察经过了多少跳。当然一些特殊情况下,会采用Via头部合并的手法,来隐藏公司内部的网络拓扑结构。