HTTP协议与HTTPS协议

协议:数据在网络上从源头到达目的地,网络通信的参与者必须遵循的相同的规则。是为了计算机之间能够流畅的进行通信而设置的。

常见协议:TCP/IP协议,SOAP协议,HTTP协议,SMTP协议等等。

HTTP协议(超文本传输协议):服务器传输超文本到本地浏览器的传输协议;应用层协议,基于TCP/IP通信协议传输数据。

原理:①客户端浏览器通过网络与服务器构建连接,一般是TCP来完成,建立连接后,客户机发送请求给服务器。

          ②服务器收到请求后,返回响应信息(格式为一个状态行)

请求与响应:

请求:请求行->请求方式(get/post) 请求url地址 协议

           请求头->服务器要使用的附加信息

           请求体->请求参数

响应:状态行->协议 状态码

           响应头->客户端要使用的附加信息

           响应体->服务器返回的真正客户端要使用的内容(HTML,json)等

请求头常见内容(爬虫使用):

     ①User-Agent:请求载体的身份标识

     ②Referer:防盗链(请求来自哪个页面,反爬会用到)

     ③cookie:本地字符串数据信息(用户登录信息,反爬的token)

响应头常见内容:

     ①cookie:本地字符串数据信息(用户登录信息,反爬的token)

     ②其他字符串(根据经验判断,一般为token字样,防止各种攻击和反爬)

HTTPS协议:

    以安全为目标的HTTP通道,是HTTP的安全版,安全基础为SSL/TLS协议。

TLS协议:安全传输协议,用于在两个通信应用程序之间提供保密性与数据完整性。包括TLS记录协议和TLS握手协议。

SSL协议:位于TCP/IP协议与各种应用层协议之间。为数据通信提供安全支持。SSL协议分SSL记录协议(SSL recoed Peotocol)和SSL握手协议(SSL Handshake Protocol)

SSL记录协议:建立在可靠的传输协议(TCP之类)上,为高层协议,通过数据封装、压缩、加密等基本功能的支持。

SSL握手协议:建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份验证,协商加密算法,交换密钥等。

HTTPS的设计目标:

     ①数据保密性:保证数据内容在传输过程中不会被第三方查看

     ②数据完整性:及时发现被第三方篡改的传输内容

     ③身份校验安全性:客户端和服务端在传输数据前,会对双方进行身份校验,确认公钥是否由自己信任的证书签发机构签发,防止中间人攻击。

HTTP协议与HTTPS协议_第1张图片

HTTP与HTTPS的区别:

     ①HTTPS协议需要ca申请证书,一般没有免费的证书,所以需要一定费用。

     ②HTTP信息是明文发送传输,HTTPS是具有安全性的SSL/TLS加密传输协议。

     ③HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,HTTP端口为80,HTTPS端口为443。

     ④HTTP是无连接,无状态的,HTTPS是有状态无连接的。

无状态:指通信双方在发送的每个消息中都不保留之前消息的状态信息,每个消息处理都是基于它本身信息的而不是从先前收到的消息中提取。例如,DNS就是无状态协议,它的每个查询都是独立的,不受先前查询的影响。

无连接:指通信双方之间在发送消息时没有先建立一个长时间的连接,每个消息都是独立的并且短暂的,发送后即断开连接。例如常见的HTTP协议就是无连接协议。

有状态:指通信双方在发送的每个消息中都保留之前消息的状态信息,消息处理基于已经建立的某种状态或上下文。例如,HTTP协议可以是有状态的,因为之前的请求响应可以用于后续请求的处理。

有连接:指通信的双方建立一个长时间持续的连接,可以反复发送消息,直到显式的关闭连接为止。例如TCP协议就是有连接协议。

 

 

你可能感兴趣的:(爬虫,网络)