长连接和短连接

    相信很多人听到长短连接就会联系到http协议,并且很清楚http1.1之前是没有长连接的,直到http1.1才出现长连接,而且http1.1默认使用长连接。

什么是长连接和短连接?

    很多人在这里就会有这样一个误区:http协议分为长连接和短连接

    为什么说这是一个误区呢,首先我们回顾以下http协议,http是应用层的请求/响应协议,http协议只是对客户发来的请求做出相应,而具体的数据传输以及网络上路由的选择是在传输层和网络层进行的。由此可以得出:建立连接这一过程并不在应用层。http协议不建立连接,建立连接的过程在传输层,因此http连接这个词用的并不是很准确,叫http请求更恰当一些。

    http使用的是TCP的传输协议,而建立连接的过程是通过TCP协议完成的。因此说http协议的长连接和短链接实质上是指TCP的长连接和短连接。

长连接和短连接的原理

tcp的三次握手和四次挥手在这里就不多做赘述了,如有疑问可以移步另一篇博客:三次握手和四次挥手

短连接:短连接是指服务器和客户端每完成一次数据的收发就断开连接,当下次需要继续发送数据时再建立连接,发送完之后再断开。过程如下:

三次握手建立连接——>收发数据——>断开连接

长连接:长连接指在服务器客户端建立连接之后在一次数据的收发结束并不立刻断开连接,而是保持着连接的状态,这样当再次有数据收发的时候就无需再次建立连接。但是服务器也不是永久的维护这个连接,这样的话资源浪费就太严重了。每间隔一段时间,服务器会给客户端发送一个探测报文,如果得不到客户端的回复,那么说明客户端已经离开(消失)而为断开连接,这时服务器则断开这个连接。如果收到了客户端的回应,则继续保持连接状态。

长连接和短连接的使用场景

长连接:长连接省去了频繁了建立连接断开连接的过程,因此适用于存在频繁的请求资源客户。但是如果在请求资源较少的场景下,长连接则很大的时间内是空闲的,这样容易造成资源浪费

短连接:与长连接相反,短连接适用于请求资源不频繁的场景,这样频率更高一点。

注意:

       http1.1默认使用的是长连接,当我们日常使用的过程中也绝大部分是长连接(如打开qq空间、新浪微博),想到这,那岂不是跟长连接的使用场景相违背了么?我们日常生活中很少有频繁的请求资源,通常打开一个网页达到了目的,那使用长连接岂不是太浪费资源了。

       其实并不是这样,建立TCP长连接的作用还有一个就是复用。一个网页中并非只有一种资源,如果使用短连接,那么将一个网页中的资源全部发送则需要建立很多个tcp连接,这样才是真正的资源浪费。使用长连接可以复用这一个tcp连接将所有资源都发送给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值