基于UDP的新一代HTTP协议及对爬虫的影响
Posted 互联网大数据处理技术与应用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于UDP的新一代HTTP协议及对爬虫的影响相关的知识,希望对你有一定的参考价值。
...
QUIC介绍
国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF)的QUIC工作小组创造了QUIC传输协议。QUIC是一个使用UDP来替代TCP的协议,有望成为新一代HTTP协议,即HTTP/3的核心基础。(https://cloud.tencent.com/developer/news/355488)。
HTTP协议的版本经历了0.9、1.1、1.2、2.0,目前被Web服务器和浏览器广泛支持的是1.1和1.2版本。HTTP是应用层协议,在网络层上,对于游戏、流媒体以及VoIP等应用通常采用UDP,而网页、邮件、远程登录等大部分的应用均采用TCP协议。与TCP协议相比,UDP更为轻量,不需要三次握手,效率更高。QUIC是Quick UDP Internet Connection的简称,是Google 2013年实现的一种基于UDP的低时延的互联网传输层协议,其目标是给Web浏览提速,当然爬虫也可以从中获益。
QUIC的特性
QUIC的特性有以下5个方面:
1)低延迟连接的建立
2)改进的拥塞控制
3)无队头阻塞的多路复用
4)前向纠错
5)连接迁移
QUIC对爬虫的可能影响
在这些特性中,改进的拥塞控制和前向纠错解决了UDP协议的不可靠问题。前向纠错特性,使得每个数据包除了它本身的内容之外,还包括了部分其他数据包的关键数据,少量的丢包可以通过其他包的冗余数据直接反推出来而无需重传。这种自纠错能力类似于存储设备中的RAID 5。因此,可以认为QUIC整合了TCP协议的可靠性和UDP协议的速度和效率优势。
QUIC对浏览器或网络爬虫带来的实实在在的益处在于其连接迁移和无队头阻塞的多路复用特性。
当然,当我们在移动环境下页面浏览Web页面时,如果使用了QUIC,其连接迁移特性就保证了当Wifi热点切换也不需要进行TCP的重新连接,因为QUIC的连接ID不会发生变化,因此无需重新进行握手。因此,这种特性可能促使将来移动环境下爬虫的流行。
多路复用实际上在HTTP 2中就已经支持,多路复用使得爬虫能够在建立一个Web服务器连接之后,就可以不断发起URL请求,可以极大提升抓取效率。但是实际上并没有这么好,HTTP 2协议还没有广泛使用。另一个问题是HTTP 2存在队头阻塞或前序包阻塞。由于TCP协议在处理包时要严格包序号进行的,当其中一个数据包传输出问题,TCP连接需要等待这个包完成重传之后才能继续进行。而QUIC实现了无队头阻塞控制,不同数据包的顺序互不影响。不管怎么样,基于QUIC的新一代HTTP使得爬虫不必针对每个URL都建立一个Web服务器的连接,提升了抓取效率,但是多路复用并不会改变服务端的反爬虫技术,仍然可以根据访问URL的特征来区分人或爬虫。
点击阅读原文链接,查看图书详情信息(目录、引言)。
以上是关于基于UDP的新一代HTTP协议及对爬虫的影响的主要内容,如果未能解决你的问题,请参考以下文章
CDN快讯阿里云对HTTP/3新一代网络传输协议QUIC浅析