【计算机网络】HTTP协议详解 HTTP代理

文章目录
HTTP代理
一、代理是什么?
二、正向代理与反向代理的主要区别有哪些
三、为什么要使用代理?(一些应用场景)
内网环境下通过代理上网
匿名访问
通过代理缓存,加快上网速度
充当拦截器、过滤器
抓包工具
负载均衡
四、代理的安全问题封面图
一、代理是什么?
代理是法律术语,简单来说就是代理人以被代理人的名义进行代理行为
在网络中,代理也做着类似的事情,是网络中的一种特殊的网络服务,扮演客户端与服务端之间的一个中间者的角色,代理服务是网络信息的中转站
代理服务器就好比代理人,客户端、服务器就好比被代理人
代理服务器可以扮演客户端的角色,也可以扮演服务端的角色
我们通常说的代理指的是正向代理
正向代理(客户端是被代理人)——客户端通过代理服务器访问目标服务器,代理服务器接过客户端的请求并转发给目标服务器,这时代理服务器对于目标服务器来说就是客户端,并不知道真实的客户端是谁(隐藏了真实请求的客户端)
反向代理(服务端是被代理人)——客户端发送请求给代理服务器,代理服务器接过请求,并在众多服务器中有策略地进行选择一个合适的服务器,并转发请求给这个实际工作的业务服务器,然后收到响应返回给客户端,这时对于客户端,并不知道真实处理工作的服务器是谁(隐藏了真实的服务端)
二、正向代理与反向代理的主要区别有哪些
正向代理隐藏的是客户端,反向代理隐藏的是服务器
三、为什么要使用代理?(一些应用场景)
一般情况下,客户端与服务端直接连接,但是在某些特殊情况下,不方便客户端与服务端直接连接,如以下场景:
内网环境下通过代理上网
某些公司使用内部局域网环境,需要限制公司内网直接访问外网,但有时候又有访问外网的需要,这个时候就可以应用正向代理,为本地局域网客户端提供访问Internet的途径,局域网内将一台可以访问外网的机器作为代理服务器。在本地发送请求的时候,由于无法直接把请求发到外网服务器,于是先把请求发给代理服务器,再由代理服务器进行转发到外网服务器上
如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全漏洞,所以在企业网,一般都是采用代理服务器访问互联网
那有同学会有疑问,那代理服务器就没有安全漏洞吗?
相比千千万万的用户主机,代理服务器数量有限,修补安全漏洞更方便快捷
匿名访问
经常听新闻,说”某某某“在网络上发布帖子,被跨省追缉了。 假如他使用匿名的代理服务器,就不容易暴露自己的身份了。
HTTP代理服务器的匿名性是指: HTTP代理服务器通过删除HTTP报文中的身份特性(比如客户端的IP地址、cookie或URI的会话ID),从而对远端服务器隐藏原始用户的IP地址以及其他细节。 同时HTTP代理服务器上也不会记录原始用户访问记录的log(否则也会被查到)
通过代理缓存,加快上网速度
大部分代理服务器都具有缓存的功能,就好比一个大型Cache,它有很大的存储空间,它不断将新取得数据存储到它本地的存储器上,如果客户端所请求的数据在代理服务器的存储器上已经存在而且是最新的,那么代理服务器就不重新从Web服务器取数据,而直接将存储器上的数据返回给客户端,这样就能显著提高响应速度
充当拦截器、过滤器
对于客户端的请求,代理服务器转发给服务端,服务端返回信息到代理服务器的这个时候,代理服务器检查返回的信息是否包含敏感信息、恶意行为,或者说人为设置的一些阻拦策略要阻拦的信息,那么代理服务器就不返回部分信息给客户端,绿色上网
抓包工具
抓包工具如Fiddler,安装在电脑里后,需要将它作为一个代理服务器,那么我们请求的时候,请求先来到了Fiddler,再转发到服务器,服务器返回的信息也先到Fiddler,这样Fiddler才能抓到各种数据包
负载均衡
在如今互联的发展下,单个服务器对于客户端请求的处理能力有限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务。这就需要应用到反向代理,客户端请求代理服务器,由代理服务器来决定哪个真实服务器处理响应,以达到降低网络和服务器的负载,提高访问效率的目的:
(1)将一个代理服务器作为一个负载均衡设备,将客户端的请求按一定的策略分发到空闲的服务器上
(2)各个服务器将处理的响应返回给代理服务器(负载均衡设备)
(3)代理服务器(负载均衡设备)将响应返回给对应的客户端
四、代理的安全问题封面图
代理服务器和抓包工具(比如Fiddler)都能看到http request中的数据。 如果我们发送的请求中有敏感数据,比如用户名,密码,信用卡号码。这些信息都会被代理服务器看到。所以非常危险。 所以我们一般都是用HTTPS来加密Http请求,这样代理服务器就看不到里面