文章插图
快代理的代理服务器支持HTTP和Socks两类协议,其中HTTP具体有HTTP和HTTPS,Socks包含了Socks4、Socks4a、Socks5 。
并且不少编程语言的网络请求库也支持使用HTTP和Socks协议的代理,那么这两种协议那种速度更快呢?
由于HTTP1.1的长连接和Socks可以单TCP连接复用,如果是使用一个TCP连接传输多个请求其实HTTP和Socks差别不大;但是在网络爬虫使用代理的情况下,通常都是每个请求都会连接一个TCP连接,所以这里分析的就是HTTP和Socks谁建立代理连接耗时最短 。
HTTP代理HTTP协议即超文本传输协议,是Internet上信息传输时使用最为广泛的一种非常简单的通信协议 。
http代理格式http://proxyip:proxyport
http访问的目标网站以http://开头,通常是客户端直接发送http请求到代理服务器,再由代理服务器去掉代理特征然后转发
客户端直接发送真实请求代理服务器收到请求,去除代理特征,解析出目标主机连接目标主机,转发请求https(http connect)访问的目标网站以https://开头,则使用的是http connect方法建立web隧道,通过web隧道传输用户的真实请求数据
2021年了,别再问代理是否支持HTTPS了!
客户端发送Connect请求代理服务器收到Connect请求,解析出目标主机连接目标主机,并给客户端发送连接成功报文客户端收到Connection established,开始发送真实请求使用http代理访问https网站,在传输真正的数据之前,需要与代理服务器进行一次“握手”,从而建立连接 。
Socks代理SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递 。SOCKS是"Socket Secure"的缩写 。这个协议最初由David Koblas开发,而后由NEC的Ying-Da Lee将其扩展到SOCKS4 。最新协议是SOCKS5,与前一版本相比,增加支持UDP、验证,以及IPv6 。根据OSI模型,SOCKS是会话层的协议,位于表示层与传输层之间 。SOCKS协议不提供加密 。
socks代理格式:socks5://proxyip:proxyport、socks4/4a://proxyip:proxyport
socks5客户端发送socks5版本及认证方式代理服务器返回不需要认证客户端发送目标主机信息代理服务器连接目标主机,返回连接成功客户端发送真实请求socks5用户名密码客户端发送socks5版本及认证方式代理服务器返回需要用户名密码认证客户端发送用户名密码代理服务器验证用户名密码,返回认证成功客户端发送目标主机信息代理服务器连接目标主机,返回连接成功客户端发送真实请求使用socks5代理可以发现在传输真正的数据之前,需要与代理服务器进行至少两次“握手”,如果使用用户名密码认证,则需要三次“握手” 。
socks4/socks4a客户端发送目标主机信息代理服务器连接目标主机,返回连接成功客户端发送真实请求使用socks4协议相比于socks5协议“握手”流程就简单了许多,与http connect连接一样,只需要与代理服务器之间进行一次“握手”就可以传输数据 。
结论由于客户端与代理服务器之间的“握手”数据传输在网络中是耗时的,所以“握手次数”越少则单次请求越快
如果访问的目标网站是http://,无疑使用http代理是最快的选择,因为不需要“握手”,代理服务器直接转发用户请求
如果访问的目标网站是https://,最快的是http代理(http connect)和socks4代理(不支持用户名密码认证),只需要一次“握手”;最慢的是socks5代理,需要至少进行两次“握手”才能真正传输用户数据 。
推荐阅读
- 24和60的公因数有哪些
- 蓝莓和牛奶可以一起吃吗
- 含铁高的食物有哪些?动物肝脏、木耳和蘑菇
- 钓鱼伞黑胶和银胶有什么区别
- 泰拉瑞亚僧人套装有什么效果
- 紫光檀和血檀家具哪个最好
- 补墙膏和腻子膏的区别 补墙膏和腻子膏有什么区别
- 佛手瓜和白萝卜相克吗
- 电缆带铠和不带铠区别,带铠电缆和不带铠电缆的区别
- 木耳如何快速泡发