HTTP1.1版本之前没有长连接,直到HTTP1.1才出现长连接,而且HTTP1.1默认使用长连接。
1.什么是长连接和短连接
很多人在这里就会有这样一个误区:http协议分为长连接和短连接
HTTP是应用层的请求/响应协议,HTTP协议只是对客户端发来的请求做出响应,而具体的数据传送以及网络上路由的选择是在传输层和网络层进行的。由此可以得出:建立连接这一过程并不属于应用层。HTTP协议不建立连接,建立连接在传输层,因此HTTP连接这个词用的并不准确。叫做HTTP请求差不多。
HTTP协议使用的是TCP传输层协议,而建立连接的过程是通过TCP连接完成的,因此说HTTP协议的长连接和短链接实质上都是值TCP的长连接和短链接。
短链接:指服务器和客户端完成一次数据的收发就断开连接,当下次需要继续发送数据时,再建立连接,发送完之后再断开。
三次握手建立连接——>收发数据——>断开连接
长连接:长连接指在服务器和客户端建立链接后,在一次的数据收发完成后后并不断开连接,而是保持连接状态,这样当再次有数据收发的时候就无需再次建立连接。但是服务器也不是永久的维护这个连接,这样的话资源浪费就太严重了。每隔一段时间,服务器回向客户端发送一个探测报文,如果得不到客户端的回复,那么说明客户端已经离开(消失),而为断开连接,这时服务器则断开这个连接。如果收到了客户端的回应,则继续保持连接状态。
长连接和短链接的使用场景
长连接:长连接省去