HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的协议。
长连接:客户端与服务端先建立连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在。
短连接:客户端与服务端每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此方式常用于一点对多点通讯。
长连接和短连接实际上就是tcp协议的长连接和短连接。http协议采用tcp协议来建立连接,由于http协议是无状态的,所以tcp的连接方式有了长连接和短连接之分,在HTTP/1.0中默认使用短连接,为了保持连接的稳定性,从HTTP/1.1开始,默认使用长连接。
长连接适合点对点通信,而短连接适合一点对多点通信。由于长连接和短连接实际上是tcp协议的连接,而一次连接和中断需要tcp的三次握手和四次挥手,所以短连接的频繁建立和中断不利于频繁的通信和数据传输,这会浪费很多时间,所以对于点对点的传输利于使用长连接,可以保持长时间连接的数据通信;短连接比较适用于一点对多点的通信,像某些大型的web网站,一般都采用短连接,如果使用长连接,每天都有成千上万的用户访问,每个都建立一个连接,那么服务器的压力就会空前的大,所以短连接适用于多个用户频繁请求的情况。
短连接的操作步骤是:
建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接
长连接的操作步骤是:
建立连接——数据传输…(保持连接)…数据传输——关闭连接