什么是长连接?长连接、短连接、三次握手

什么是长连接?

在经过三次握手之后,如果再进行请求,不需要再次进行三次握手。

HTTP连接分为两个:长连接、短连接

  • 长连接:客户端和服务端建立连接后不进行断开,之后客户端再次访问这个服务器上的内容时,继续使用这一条连接通道。
  • 短连接:客户端和服务端建立连接,发送完数据后立马断开连接。下次要取数据,需要再次建立连接。
  • HTTP/1.0:默认使用短连接
  • HTTP/1.1:默认使用长连接
  • HTTP的长连接和短连接就是TCP(传输协议)的长连接和短连接

三次握手

什么是长连接?长连接、短连接、三次握手
seq:***,是一个随机值
ack:确认序号,只有当ACk=1的时候有效,值=seq+1

标志位:
SYN:发起一个连接,用来做同步。
ACK:确认序号有效

状态:
CLOSED:关闭
LISTEN:监听
SYN_SENT:在发送连接请求后等待连接
SYN_RCVD:在发送和收到一个连接请求后等待连接的确认
ESTABLISHED:建立连接。表示两台机器正在通信

TCP进行三次握手的根本原因

  • 第一次握手:客户端发送连接请求,服务端收到了。
    服务端得出结论:客户端的发送没有问题,服务端的接收没有问题。
  • 第二次握手:服务端发包,客户端收到了。
    客户端得出结论:服务端的接收,发送没有问题,客户端的发送和接收也没有问题。此时,服务端并不能确认客户端的接收是否正常。
  • 第三次握手:客户端发包,服务端收到。
    服务端得出结论:客户端的接收、发送以及服务器的接收、发送没有问题。

TCP握手的来源:两军沟通问题

什么是长连接?长连接、短连接、三次握手