http与https的区别

一、http与https的区别

安全性:https是安全的超文本传输协议,使用了TLS/SSL加密(SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密)。

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。
TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。

是否需要申请证书:https需要使用ca申请证书。
传输协议:https具有安全性的SSL加密传输协议;http超文本传输协议,明文传输。
连接方式与端口:http的连接简单,是无状态的,端口是 80; https 在http的基础上使用了ssl协议进行加密传输,端口是 443。

二、http的工作过程

http由请求和响应构成,是一个标准的客户端服务器模型(C/S)。http协议是客户端发起请求,服务器响应请求。

http过程如下:

1.地址解析。域名系统DNS解析域名得到主机IP地址。

2.封装http请求数据包。封装主机IP地址以及主机信息。

3.封装成TCP包,建立TCP连接(三次握手)。

4.建立连接后,客户机向服务器发送请求。

5.服务器接收请求,给予响应。

6.服务器关闭TCP连接(四次挥手)。

7.客户端解析报文,解析并渲染HTML代码。

三、https的通信过程

https通信时,首先建立ssl层的连接,客户端将ssl版本号和加密组件发到服务器端。服务器端对收到的ssl版本号和加密组件进行匹配,同时将ca证书及密钥发送给客户端。

客户端对证书进行验证,验证通过后使用非对称加密对数据通信时的密钥进行协商。协商后得到一致的加密密钥,然后使用对称加密算法进行TCP连接,后续的过程跟http一致。三次握手,数据交换,四次挥手,通信结束。

https具体过程如下:

1.客户端和服务器端通过TCP建立连接。

2.客户端向服务器发送HTTPS请求。

3.服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。

4.客户端收到服务器端的数字证书之后,会验证数字证书的合法性。

5.如果公钥合格,那么客户端会生成一个用于进行对称加密的密钥client key,并用服务器的公钥对客户端密钥进行非对称加密。

非对称加密:客户端和服务端均拥有一个公有密匙和一个私有密匙。公有密匙可以对外暴露,而私有密匙只有自己可见。

6.客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。

7.服务器接收到客户端发来的密文之后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。

8.客户端收到密文,并使用客户端秘钥进行解密,渲染网页。

http与https的区别_第1张图片
原文出处:
https://blog.csdn.net/JAck_chen0309/article/details/105020259

参考文章:
https://blog.csdn.net/qq_35642036/article/details/82788421

你可能感兴趣的:(通讯协议,https,http)