一.长连接与短连接

有长连接就自然会就会短连接,HTTP长连接和短连接本质是TCP长连接和短连接。

HTTP属于应用层协议,在网络层使用IP协议,主要解决网络路由和寻址问题;在传输层使用TCP协议,主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致,具有可靠、面向连接的特点。

短连接:客户端每进行一次请求就会建立一次连接,结束则中断连接。通常我们访问的页面中会加载一些其他资源,比如js文件,css文件,每加载一个资源,都会新建立一个连接请求。在HTTP 1.0中默认是使用短连接的。

 

长连接:与短连接相反,当一个网页完成打开后,连接并不会关闭,每加载一个文件都会使用已经建立的连接。在HTTP1.1中默认是使用长连接的,使用长连接,在响应头中会有:Connection:keep-alive。在短连接的响应头会是:Connection:close。

短连接和长连接的区分在于一个只建立一次连接,一个建立n次连接,那么用在扫描网站中使用长连接可以大大提升效率。

二.requests.session()

requests.session()发送的http请求是使用长连接的

使用长连接和使用短连接分别请求十次localhost的对比


分享一个前几天闲着没事写的一个随机http头&多线程扫描网站备份文件的小脚本,也是基于长连接。

可以基于域名特征,字典,以及爬虫来扫描(爬虫功能不是所有网站都能行得通,所以在调用的时候注释掉了,如果要使用爬虫功能请删除150行代码注释)

https://github.com/GroupT00/KarScan/blob/master/KarScan.py

三、参考文章

https://www.cnblogs.com/traxex/p/5803023.html

http://blog.csdn.net/sheng_bin/article/details/53291410

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Are you human? Click the Pineapple...