返回 blog
2021年1月25日
1 分钟阅读

Http三次握手四次挥手

为什么是3次握手?

3次是确保client和server收发数据都没问题的最小次数:

  1. client发送消息给server,告诉server,client具有发送消息的能力
  2. server回复消息给client,告诉client,server具有收发消息的能力
  3. client收到后再回复给server,告诉server,client具有接受消息的能力

期间,每次发送消息,都会带有seq,保证此次握手是延续上次握手

为什么是4次挥手?

因为TCP是全双工同道:客户端和服务端之间有两条通道 一条通道是客户端输出服务端的输入 一条通道是客户端输入服务端的输出 两条通道可以同时工作,也就是客户端给服务端发消息的同时,服务端也可以给客户端发消息 所以关闭的时候是这样的:

  1. 客户端告诉服务端,我要关闭这个输入通道了
  2. 服务端回复客户端,好的,我也关闭这个通道
  3. 服务端告诉客户端,我要关闭输入通道了
  4. 客户端回复,好的,我也关闭