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

2021-02-26    分类: 网站建设

你一定听说过关于http所谓的 长连接和短连接之说。

但是,什么是长连接?什么是短连接,我想很多人都是懵懵懂懂的,不能完全说出他们的区别。今天就带你们完全了解他们,从此再也不会忘记了。

接下来我们就聊一聊 长连接和短连接分别在什么场景下使用?

  • 长连接使用场景:长连接多用于频繁操作,多次请求的网络应答响应,而且是一对一,点对点的通信。 例如:数据库的连接用长连接,如果使用短连接频繁的应答响应会造成socket报错,同时也会浪费资源。
  • 短连接的使用场景:短连接怎不会那么耗费资源,因为不需要长时间占用TCP连接。因此,像Web网站中的http服务一般都是用的短连接。因为长连接会占用一定的资源,而像淘宝,京东等网站这样频繁的被用户访问,赶上双十一都是上亿规模的访问量,如果使用长连接,每个用户都占用一个TCP连接通道,那么服务器的压力可想而知。所以,这种情况下 使用短连接效果比较好。

因为上面我们说到HTTP的连接实际上就是TCP的连接,那么在这里我们就不得不来详细说一下,TCP的连接有什么特色呢?

TCP 连接

在网络应答请求时,客户端与服务器端之间必须建立一个连接,当网络请求完成之后,双方就不再需要这个连接时就可以将连接释放。 而这里采用的是TCP连接,TCP的协议里面的连接,依靠是“三次握手”,释放时依靠“四次分手”。

因此每一次的连接都是需要耗费资源和时间的。

1. TCP 的“三次握手”:

TCP 的“三次握手”

TCP 的三次握手的示意图

详细解释:

  • 第一次握手:客户端想服务器发送一个SYN 标志位为1的包,以及初始序号X,包装在包的头的序列号字段里。
  • 第二次握手:服务器发回ACK(确认包),即将SYN和ACK标志位都命名为1,同时将序列号修改为X+1.
  • 第三次握手:客户端向服务器再次发送确认包(ACK),SYN标志位为0.ACK标志位为1.同时把服务器发过来的ACK包序列号字段+1.放在包中,发给服务器即ACK=Y+1

2. TCP 的“四次分手”:

因为TCP的断开需要发送四个包,因此被称之为 四次挥手。客户端或服务器端均可主动断开。在socket 编程中,任何一方执行close()操作即可产生分手操作。

HTTP 协议的长连接和短连接,实质上就是TCP协议的长连接和短连接。

短连接和长连接的工作原理是啥,有啥优势呢?

  • 短连接:client向server发送请求,server收到请求,双方建立连接。Client向server发送消息,server响应client.然后一次连接就完成了。此时,双方都可以发起close操作。
  • 短连接的优点:管理简单,发起的连接都是有效的连接。不需要额外的控制手段。
  • 长连接:client向server发送请求,server响应client的连接,双方建立连接。然后完成一次成功的响应请求,之后他们的连接不会主动关闭,后面的读写响应请求还会继续使用这个连接通道。

文章题目:HTTP的长连接和短连接直接的区别
文章起源:https://www.cdcxhl.com/news/102990.html

成都网站建设公司_创新互联,为您提供网站改版营销型网站建设企业网站制作网站设计公司企业建站网站导航

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营