HTTPTLS,关于安全三次握手和四次挥手浏览器输入url到页面呈现,经过的过程,DNS 解析IP地址请求资源HTTP三次握手网页渲染三次握手SYN 客户端选择一个随机序列号 x,并发送一个 SYN 分组,其中可能还包括其他 TCP标志和选项。SYN ACK 服务器给 x 加 1,并选择自己的一个随机序列号 y,追加自己的标志和选项,然后返回响应。ACK 客户端给 x 和 y 加 1 并发送握手期间的最后一个 ACK 分组。四次挥手TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。服务器关闭客户端的连接,发送一个FIN给客户端。客户端发回ACK报文确认,并将确认序号设置为收到序号加1。TLSTLS协议提供三个基本的服务加密 :通过非对称密钥加密张三和李四分别生成自己的公钥和私钥;张三和李四分别隐藏自己的私钥;张三向李四公开自己的公钥,李四也向张三公开自己的公钥;张三向李四发送一条新消息,并用自己的私钥签名;李四使用张三的公钥验证收到的消息签名。身份验证数据完整性三次握手客户端向服务端发送一个请求SYN,请求中有随机序列号X,发送一个SYN分组服务器收到请求,给随机序列号X加1,自己在发送一个随即序列Y和X给客户端客户端收到X和Y,Y加上1,然后发送一个ACK分组给服务器四次挥手TCP 给服务器发送一个 FIN服务器收到FIN后,返回一个ACK服务器关闭客户端的连接,发送一个FIN给客户端客户端发回ACK报文确认为什么了连接需要三次,关闭却需要四次对于建链接的3次握手,主要是要初始化Sequence Number 的初始值。通信的双方要互相通知对方自己的初始化的Sequence Number(缩写为ISN:Inital Sequence Number)——所以叫SYN,全称Synchronize Sequence Numbers。也就上图中的 x 和 y。这个号要作为以后的数据通信的序号,以保证应用层接收到的数据不会因为网络上的传输的问题而乱序(TCP会用这个序号来拼接数据)。对于4次挥手,其实你仔细看是2次,因为TCP是全双工的,所以,发送方和接收方都需要Fin和Ack。只不过,有一方是被动的,所以看上去就成了所谓的4次挥手。如果两边同时断连接,那就会就进入到CLOSING状态,然后到达TIME_WAIT状态。参考TCP 的那些事儿(上)