爬虫代理http协议和https协议的区别

时间:2024-05-23 10:30:17

1.HTTP和HITTPS的基本概念
HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
2.HTTP和HTTPS的区别
• 二者都是网络传输协议,https是http的升级版、安全版,https是在http基础上进行加密的。
• 连接方式不同:http的连接很简单,是无状态的;https 协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
• http是超文本传输协议,信息是明文传输;https则是具有安全性的ssl加密传输协议。
• http的端口是80;https的端口是443。
• https需要ca证书申请,一般免费证书较少,因而需要一定费用(证书其实就是一对公钥和私钥)。
3.HTTP协议过程
当我们在浏览器中输入URL后,会发生什么?比如https://www.baidu.com
我们可以用curl -v https://www.baidu.com 来研究这个过程,会发现总共有4个子过程。
1、查找域名对应的IP地址
Rebuilt URL to: https://www.baidu.com/* Trying 14.215.177.38…
我们可以通过nslookup www.baidu.com模拟这个过程,dns服务器返回两个IP地址,curl会随机选用其中一个IP服务器进行访问。
2、向IP对应的服务器发送SSL协商请求,进行SSL协商
Connected to www.baidu.com (14.215.177.38) port 443 (#0)
下图是通过Wireshark抓包获取的协商过程。
3、SSL协商完成后,向IP对应服务器发起GET请求
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
网站会检查是不是真的浏览器访问。需加上User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.1276.73 Safari/537.36,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法。
4、服务器响应请求,发回网页内容
< HTTP/1.1 200 OK
< Connection: keep-alive
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
服务器一般会使用cookie来标识用户,如果接受并带上该cookie继续访问,服务器会认为你是一个已标识的正常用户。因此,大部分网站需要使用cookie的来爬取内容。
爬虫代理http协议和https协议的区别
爬虫代理http协议和https协议的区别
爬虫代理http协议和https协议的区别
爬虫是长期进行的任务,所以需要配合代理才能更好的获取数据,亿牛云爬虫代理加强版可以让我们爬虫程序长期稳定的进行数据采集。