HTTP中介之代理
HTTP 代理存在两种形式
第一种是 RFC 7230 – HTTP/1.1: Message Syntax and Routing(即修订后的 RFC 2616,HTTP/1.1 协议的第一部分)描述的普通代理。这种代理扮演的是「中间人」角色,对于连接到它的客户端来说,它是服务端;对于要连接的服务端来说,它是客户端。它就负责在两端之间来回传送 HTTP 报文。
第二种是 Tunneling TCP based protocols through Web proxy servers(通过 Web 代理服务器用隧道方式传输基于 TCP 的协议)描述的隧道代理。它通过 HTTP 协议正文部分(Body)完成通讯,以 HTTP 的方式实现任意基于 TCP 的应用层协议代理。这种代理使用 HTTP 的 CONNECT 方法建立连接, 但 CONNECT 最开始并不是 RFC 2616 – HTTP/1.1 的一部分,直到 2014 年发布的 HTTP/1.1 修订版中,才增加了对 CONNECT 及隧道代理的描述,详见 RFC 7231 – HTTP/1.1: Semantics and Content。实际上这种代理早就被广泛实现。
普通代理
第一种 Web 代理原理特别简单:
HTTP 客户端向代理发送请求报文,代理服务器需要正确地处理请求和连接(例如正确处理 Connection: keep-alive),同时向服务器发送请求,并将收到的响应转发给客户端。
隧道代理
第二种 Web 代理的原理也很简单:
HTTP 客户端通过 CONNECT 方法请求隧道代理创建一条到达任意目的服务器和端口的 TCP 连接,并对客户端和服务器之间的后继数据进行盲转发。
以上引用 Jerry Qu的文章imququ.com/post/web-pr…
HTTP 代理的作用
- 抓包
- FQ**
虽然用的最多是vpn,但是vpn和代理不一样,对于构建VPN来说,隧道技术用来在IP公网中仿真条点到点的通路,实现两个节点间(VPN网关之间,或VPN网关与VPN远程用户之间)的安全通信,使数据包在公共网络上的专用隧道内传输。
封装是构建隧道的基本手段。从隧道的两端来看,封装就是用来创建、维持和撤销一个隧道,来实现信息的隐蔽和抽象。而如果流经隧道的数据不加密,那么整个隧道就暴露在公共网络中,虚拟专用网络的安全性和私有性就得不到体现。
3.匿名访问
经常听新闻,说”某某某“在网络上发布帖子,被跨省追缉了。 假如他使用匿名的代理服务器,就不容易暴露自己的身份了。
http代理服务器的匿名性是指: HTTP代理服务器通过删除HTTP报文中的身份特性(比如客户端的IP地址, 或cookie,或URI的会话ID), 从而对远端服务器隐藏原始用户的IP地址以及其他细节。 同时HTTP代理服务器上也不会记录原始用户访问记录的log(否则也会被查到)。
4.儿童过滤器
很多教育机构, 会利用过滤器代理来阻止学生访问成人内容。
HTTP代理优点
1、突破自身IP访问限制,访问国外站点。如:教育网、169网等网络用户可以通过代理访问国外网站。
2、访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费。代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
3、突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种限制是人为的,不同Serve对地址的封锁是不同的,所以不能访问时可以换一个国外的代理服务器试试。
4、提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
5、隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。
HTTP中介之网关
- 网关可以作为某种翻译使用,它抽象出了一种能够到达资源的方法,网关是资源和应用程序之间的粘合剂
- 网关扮演的是“协议转换器”的角色
网关可以向数据库发送查询数据,发邮件,生成动态内容,像一个门一样,进入一个请求,出来一个响应
WEB网关
- Web网关在一侧使用HTTP协议,在另一侧使用另一种协议
客户端协议 / 服务器端协议
- (HTTP/)服务器端网关:通过HTTP协议与客户端对话,通过其他协议与服务器通信
- (/HTTP)客户端网关:通过其他协议与客户端对话,通过HTTP协议与服务器通信
常见的网关类型
- (HTTP/*) 服务器端Web网关
请求流入原始服务器时,服务器端Web网关会将客户端HTTP请求转换为其他协议与服务器进行连接,完成获取资源以后,会将对象放在一条http响应中发送给客户端
- (HTTP/HTTPS) 服务器端安全网关
一个组织可以通过网关对所有的输入Web请求加密,以提供额外的隐私和安全性保护。客户端可以用普通的HTTP浏览Web内容,但网关会自动加密对话。
- (HTTPS/HTTP) 客户端安全加速器网关
将HTTPS/HTTP 网关作为安全加速器使用的情况越来越多了,这些 HTTPS/HTTP 网关位于Web服务器之前,通常作为不可见的拦截网关或反向代理使用。它们接收安全的 HTTPS 流量,对安全流量进行解密,并向 Web服务器发送普通的HTTP请求。这些网关中通常都包含专用的解密硬件,以比原始服务器有效的多的方式来解密安全流量,以减轻原始服务器的负荷。这些网关在网关和原始服务器之间发送的是未加密的流量。所以,要谨慎使用,确保网关和原始服务器之间的网络是安全的。
- 资源网关
最常见的网关,应用程序服务器,会将目标服务器与网关结合在一个服务器中实现。应用程序服务器是服务器端网关,与客户端通过HTTP进行通信,并与服务器端的应用程序相连。客户端是通过HTTP连接到应用程序服务器的。但应用程序服务器并没有回送文件,而是将请求通过一个网关应用编程接口(Application Programming Interface,API)发送给运行在服务器上的应用程序。