Web代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web代理无处不在。今天我们就来聊一聊代理对 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。实际上这种代理早就被广泛实现。
第一种代理
HTTP 客户端向代理发送请求报文,代理服务器需要正确地处理请求和连接(例如正确处理 Connection: keep-alive),同时向服务器发送请求,并将收到的响应转发给客户端。
下面这张图片来自于《HTTP 权威指南》,直观地展示了上述行为:假如我通过代理访问 A 网站,对于 A 来说,它会把代理当做客户端,完全察觉不到真正客户端的存在,这实现了隐藏客户端 IP 的目的。当然代理也可以修改 HTTP 请求头部,通过 X-Forwarded-IP 这样的自定义头部告诉服务端真正的客户端 IP。但服务器无法验证这个自定义头部真的是由代理添加,还是客户端修改了请求头,所以从 HTTP 头部字段获取 IP 时,需要格外小心。
第二种代理
HTTP 客户端通过 CONNECT 方法请求隧道代理创建一条到达任意目的服务器和端口的 TCP 连接,并对客户端和服务器之间的后继数据进行盲转发。
下面这张图片同样来自于《HTTP 权威指南》,直观地展示了上述行为:
假如我通过代理访问 A 网站,浏览器首先通过 CONNECT 请求,让代理创建一条到 A 网站的 TCP 连接;一旦 TCP 连接建好,代理无脑转发后续流量即可。所以这种代理,理论上适用于任意基于 TCP 的应用层协议,HTTPS 网站使用的 TLS 协议当然也可以。这也是这种代理为什么被称为隧道的原因。对于 HTTPS 来说,客户端透过代理直接跟服务端进行 TLS 握手协商密钥,所以依然是安全的。
最后,HTTP 的认证机制可以跟代理配合使用,使得必须输入正确的用户名和密码才能使用代理。
相关资讯
相关文章内容简介
1 HTTP代理的方式及原理是怎么样的?
Web代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web代理无处不在。今天我们就来聊一聊代理对 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 的方式实 [阅读全文]
推荐阅读
24
2019-06
socks5代理IP工具SocksCap的使用教程
在上一篇文章《socks5代理IP工具Proxifier的使用教程》我们了解了怎么通过Proxifier工具来使用socks5代理IP,今天主要介绍另外一款功能非常强大的工具——SocksCap。
22
2019-04
稳定的爬虫代理IP服务器——黑洞http
大数据时代,爬虫工作者已经成为互联网数据公司的关键性职位,要想有效突破反爬虫机制继续高频率抓取,使用一款优质的代理IP是必不可少的,现如今互联网上各种各样的HTTP代理IP软件层出
21
2019-05
单独定制高质量的代理IP贵吗?
现在的网络在给人们带来便利高效的同时,也带来了一些负面的影响,比如某些需要注册很多网站账号的时候就容易丢失密码或者注册不成功。这时候你就要想到代理ip,这是一个主要针对互联
22
2019-03
不用IP代理,用爬虫爬取数据有什么优缺点?
Python是一种解释型脚本语言,可以用于Web 和 Internet开发、科学计算和统计等。由于Python易读、易维护,因此受到大量用户的青睐。今天芝麻HTTP就为大家详细的介绍一下,常见的爬虫框架都有哪
15
2019-04
微博推广效果不好?代理IP拯救你
07
2019-11
反爬虫策略能不能杀死所有的爬虫
反爬虫一直是爬虫工作者的烦恼,近来更是反爬虫策略越来越高级。有朋友担心,以后的反爬虫机制会不会杀死所有的爬虫,那样就没法工作了。其实,这种可能性基本没有,毕竟反爬虫机制最
热门文章
注意: 严禁一切违规违法的业务,一经发现直接封帐号
Powered by wanchen tech. © | 粤ICP备18047396号-6 广州万宸软件科技有限公司http代理 版权所有