一、建立连接是三次握手
为什么三次握手?前两次握手为了确认服务端能正常收到客户端的请求并愿意应答,后两次握手是为了确认客户端能正常收到服务端的请求并愿意应答。三次握手可以避免意外建立错误连接而导致浪费的情况,比如客户端上一次连接的包延迟现在才到服务器,此时服务器发应答,客户端此时不会发确认包,从而不会建立连接。
二、释放四次挥手
因为TCP是全双工(双向数据传输)协议,前两次挥手表示客户端停止发送数据并得到服务端响应,此时可以从服务端单向发数据到客户端,后两次挥手表示服务端停止发送数据并得到客户端的响应。此时客户端有等待两个最大报文时长,避免因为网络原因,它的应答信息服务端没有收到,服务端在超时后会再次发送停止发送数据请求,客户端再次发送应答确认信息。
三、HTTPS通讯流程
1、客户端发起请求到服务器,服务器返回包含自己公钥的证书。
2、客户端验证证书无效则告警,有效则用其公钥加密一个随机产生的对称加密的密钥到服务器。
3、服务器用私钥解密获取对称加密密钥,两边进行加密数据通信。