长连接与短连接的区别以及使用场景

简介: 这篇文章讨论了长连接与短连接的区别、各自的优缺点以及使用场景,指出短连接适用于浏览器访问服务器等场景,而长连接适用于操作频繁且连接数不多的情况,如数据库连接,选择长连接或短连接应根据实际需求和网络环境来决定。

短连接

1、连接->传输数据->关闭连接
2、比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
3、因为连接后接收了数据就断开了,所以每次数据接受处理不会有联系。 这也是HTTP协议无状态的原因之一。

什么是短链接?

clientserver建立连接,client发送请求消息,server返回响应,一次连接就完成了。

这时候双方任意都可以发起close操作,不过一般都是client先发起close操作。上述可知,短连接一般只会在 client/server传递一次请求操作

短连接的优缺点

  • 管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段。

使用场景

  • 通常浏览器访问服务器的时候就是短连接。

  • 对于服务端来说,长连接会耗费服务端的资源,而且用户用浏览器访问服务端相对而言不是很频繁的

  • 如果有几十万,上百万的连接,服务端的压力会非常大,甚至会崩溃。

  • 所以对于并发量大,请求频率低的,建议使用短连接。

长连接

1、连接->传输数据->保持连接 -> 传输数据-> …->直到一方关闭连接,多是客户端关闭连接。
2、长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。

什么是长连接?
clientserver发起连接,server接受client连接,双方建立连接。

Clientserver完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。

长连接的生命周期

正常情况下,一条TCP长连接建立后,只要双不提出关闭请求并且不出现异常情况,这条连接是一直存在的.

操作系统不会自动去关闭它,甚至经过物理网络拓扑的改变之后仍然可以使用。

所以一条连接保持几天、几个月、几年或者更长时间都有可能,只要不出现异常情况或由用户(应用层)主动关闭。

客户端和服务单可一直使用该连接进行数据通信。

长连接的优点

  • 长连接可以省去较多的TCP建立和关闭的操作,减少网络阻塞的影响,

  • 当发生错误时,可以在不关闭连接的情况下进行提示,

  • 减少CPU及内存的使用,因为不需要经常的建立及关闭连接。

长连接的缺点

  • 连接数过多时,影响服务端的性能和并发数量。

什么时候用长连接,短连接?

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频 繁操作情况下需用短连好。

总之,长连接和短连接的选择要视情况而定。

相关文章
|
2月前
WebSocket 心跳机制如何实现
WebSocket 心跳机制如何实现
28 0
|
3月前
|
网络协议
UDP服务器的并发方案
UDP服务器的并发方案
37 0
|
4月前
|
前端开发 网络协议 JavaScript
|
4月前
|
存储 负载均衡 网络协议
高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论
高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论
106 0
|
10月前
|
tengine 网络协议 Linux
关于长连接服务器和客户端之间要加入心跳的一些讨论
关于长连接服务器和客户端之间要加入心跳的一些讨论
|
11月前
|
网络协议
选择长连接 or 短连接,大量 Timewait 的产生时如何处理?
网络通讯中,常见的两个连接类型分别是长连接和短连接。长连接指在一定时间内保持连接不断开,而短连接则指每次连接只进行一次通信,通信结束后即时断开连接。在实际应用中,不同类型的连接有着不同的应用场景和优缺点,而且在网络通讯中可能会遇到大量 Timewait 的产生,这就需要针对不同情况选择不同的处理方案。
|
监控 前端开发 网络协议
HTTP - 长连接 & 短连接 & 长轮询 & 短轮询 & 心跳机制
HTTP - 长连接 & 短连接 & 长轮询 & 短轮询 & 心跳机制
1732 0
HTTP - 长连接 & 短连接 & 长轮询 & 短轮询 & 心跳机制
|
运维 监控 Dubbo
Dubbo协议异步单一长连接原理与优势
Dubbo协议异步单一长连接原理与优势
517 0
|
Web App开发 移动开发 前端开发
WebSocket 是什么原理?为什么可以实现持久连接?
额。。最高票答案没答到点子上,最后怎么跑到Nodejs上去了。。Websocket只是协议而已。。 我一个个来回答吧
110 0
|
网络协议 数据库
长连接&短连接
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
长连接&短连接