HTTP的长连接和短连接直接的区别

发布时间:2025-04-12 点击:7
你一定听说过关于http所谓的 长连接和短连接之说。
但是,什么是长连接?什么是短连接,我想很多人都是懵懵懂懂的,不能完全说出他们的区别。今天就带你们完全了解他们,从此再也不会忘记了。
接下来我们就聊一聊 长连接和短连接分别在什么场景下使用?
长连接使用场景:长连接多用于频繁操作,多次请求的网络应答响应,而且是一对一,点对点的通信。 例如:数据库的连接用长连接,如果使用短连接频繁的应答响应会造成socket报错,同时也会浪费资源。短连接的使用场景:短连接怎不会那么耗费资源,因为不需要长时间占用tcp连接。因此,像web网站中的http服务一般都是用的短连接。因为长连接会占用一定的资源,而像淘宝,京东等网站这样频繁的被用户访问,赶上双十一都是上亿规模的访问量,如果使用长连接,每个用户都占用一个tcp连接通道,那么服务器的压力可想而知。所以,这种情况下 使用短连接效果比较好。因为上面我们说到http的连接实际上就是tcp的连接,那么在这里我们就不得不来详细说一下,tcp的连接有什么特色呢?
tcp 连接
在网络应答请求时,客户端与服务器端之间必须建立一个连接,当网络请求完成之后,双方就不再需要这个连接时就可以将连接释放。 而这里采用的是tcp连接,tcp的协议里面的连接,依靠是“三次握手”,释放时依靠“四次分手”。
因此每一次的连接都是需要耗费资源和时间的。
1. tcp 的“三次握手”:
tcp 的三次握手的示意图
详细解释:
第一次握手:客户端想服务器发送一个syn 标志位为1的包,以及初始序号x,包装在包的头的序列号字段里。第二次握手:服务器发回ack(确认包),即将syn和ack标志位都命名为1,同时将序列号修改为x+1.第三次握手:客户端向服务器再次发送确认包(ack),syn标志位为0.ack标志位为1.同时把服务器发过来的ack包序列号字段+1.放在包中,发给服务器即ack=y+12. tcp 的“四次分手”:
因为tcp的断开需要发送四个包,因此被称之为 四次挥手。客户端或服务器端均可主动断开。在socket 编程中,任何一方执行close()操作即可产生分手操作。
http 协议的长连接和短连接,实质上就是tcp协议的长连接和短连接。
短连接和长连接的工作原理是啥,有啥优势呢?
短连接:client向server发送请求,server收到请求,双方建立连接。client向server发送消息,server响应client.然后一次连接就完成了。此时,双方都可以发起close操作。短连接的优点:管理简单,发起的连接都是有效的连接。不需要额外的控制手段。长连接:client向server发送请求,server响应client的连接,双方建立连接。然后完成一次成功的响应请求,之后他们的连接不会主动关闭,后面的读写响应请求还会继续使用这个连接通道。


APP定制,助力打造品牌形象
你的网站域名是否安全 站长应防止域名劫持
【干货分享】文案写作小技巧
现在做网站的市场前景如何?
网站seo优化怎样做才能提高访问量
分析您的网站有效用户是谁?
云计算中的IaaS、PaaS、SaaS都是啥
什么叫营销型网站,营销型网站怎么做