HTTP(Hyper Text Transfer Protocol: 超文本传输协议)使用TCP作为传输层协议默认使用80端口内容以明文发送

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目标的 HTTP 协议,443 端口,在HTTP的基础上增加传输加密保证安全。

HTTP比HTTPS速度快,主要在于HTTPS多了一个协商SSL的过程

1客户端发起一个 HTTPS 请求,发送自身所支持的算法列表和密钥长度等;

2服务端选择双方都支持的加密算法。如果没有合适的就会断开链接。

3 如果有合适的加密算法,服务器向客户端发送一个包含数字证书的报文,该数字证书从数字认证机构(Certificate Authority, CA)中申请,包含证书的颁发机构、使用机构、签名hash算法、签名算法、过期时间、服务端的公钥、指纹、指纹算法等信息。

4最后服务端发送一个完成报文通知客户端 SSL 的第一阶段已经协商完成。

5 客户端验证收到的证书

6 客户端生成 随机数,既后面的私钥。发送给服务端

7 这次握手中包含第一次握手至今所有报文的整体校验值,最终协商是否完成取决于服务端能否成功解密。获得客户端的随机数

8 服务端同样发送与第 6 步中相同作用的报文,已让客户端进行确认,最后发送 finish 报文告诉客户端自己能够正确解密报文。

当服务端和客户端的 finish 报文交换完成之后,SSL 连接就算建立完成了,之后就进行和 HTTP 相同的通信过程,唯一不同的是在 HTTP 通信过程中并不是采用明文传输,而是采用对称加密的方式,其中对称密钥已经在 SSL 的建立过程中协商好了。

发表评论