在日常项目中,大多的时候我们用的是短连接,一个请求过来,一个线程处理完该请求,线程被线程池回收,这个请求就关闭了.虽然这能满足很大部分的需求,但是也有些问题,比如说:如果客户端发的请求比较多,比较频繁,服务端就会忙于建立连接处理请求,由于服务端的线程数也有限,并发比较大的话有可能会造成服务端的崩溃.那有没有一种办法使连接少一些,让一个线程可以处理多个连接?长连接的出现就是为了解决上面的问题

长连接

client与server先建立连接以后不断开,然后进行通信(也就是发送报文)。这种方式由于连接一直存在,所以被称为长连接。经常用于P2P通信。

建立连接——数据传输…(保持连接)…数据传输——关闭连接

短连接

Client与server每进行一次通信(报文)才发起连接,交易完毕后 立即断开连接。此方式常用于一点对多通讯。C/S通信用得比较多。

建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接

长连接与短连接的使用时机

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

在具体的网络应用中,smtp,pop3,telnet,网络游戏应用一般是长连接

短连接

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

什么是长连接和短连接相关推荐

  1. 跨进程通信,到底用长连接还是短连接

    一个完整的软件系统大多数情况下是由多个进程共同协作进行的,哪怕它们在同一台服务器上.所以,进程之间如何进行高效的通信至关重要. 单个应用程序+单个数据库这套基础开发套餐我相信每个人都经历过,甚至在初期 ...

  2. 长连接、短连接、短轮询、长轮询

    长连接.短连接.短轮询.长轮询 短连接:每次Http请求都会建立Tcp连接,管理容易 长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难 短轮询:重复发送Http请求, ...

  3. HTTP长连接和短连接以及推送服务原理(转)

    HTTP长连接和短连接以及推送服务原理 转自:http://blog.csdn.net/freewaywalker/article/details/50067757 HTTP长连接和短连接1 1. H ...

  4. HTTP长连接和短连接 + Websocket

    HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,T ...

  5. PHP tcp短链接,http请求怎样实现TCP长连接、短连接

    HTTP连接分为长连接和短连接,而我们现在常用的都是HTTP1.1,因此我们用的都是长连接. 这句话其实只对了一半,我们现如今的HTTP协议,大部分都是1.1的,因此我们平时用的基本上都是长连接.但是 ...

  6. TCP长连接和短连接

    2019独角兽企业重金招聘Python工程师标准>>> 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操 ...

  7. HTTP长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

  8. 网络:长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

  9. [转]TCP(HTTP)长连接和短连接区别和怎样维护长连接

    原文链接 一.HTTP协议和TCP协议 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题, ...

  10. 什么是长连接和短连接?(长链接、短链接)什么时候使用长连接、短链接?

    文章目录 什么是长连接和短连接? 什么时候使用长连接.短链接? 定义 适用场景 什么是长连接和短连接? 在HTTP/1.0中默认使用短连接.也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连 ...

最新文章

  1. 【VMware vSAN 6.6】8.2.合规性:我们有软硬件项目解决方案
  2. Linux 内核抓包功能实现基础(五) 常见问题解析
  3. maxwell中文汉化补丁_《我的世界:地下城》中文剧情流程攻略 通关视频流程
  4. mysql 5.7 hint_新特性解读 | MySQL 8.0 新增 HINT 模式
  5. child pid xxx exit signal Segmentation fault (11)
  6. mysql connection_id 表锁的应用
  7. 要写related_name的两种情况
  8. 【Flex】读取本地JSON,然后JSON数据转成XML数据
  9. java day56【 Mybatis 延迟加载策略 、 Mybatis 缓存、Mybatis 注解开发 】
  10. css居中的几种方法_css两种常用的不定宽高的水平垂直居中方法,记住它,不再为样式发愁...
  11. 小甲鱼 c语言 20课 二维数组
  12. 故障处理 软件 需求_如何做软件FMEA?
  13. ArcGIS实验四 不同坡度植被覆盖率分析
  14. 一文了解LD7537RGL
  15. ToolB不能用了,这里有完美替代
  16. Word中的字体大小(几号-几磅)【转】
  17. cf 、B. Fridge Lockers(思维 + 贪心)
  18. Linux ls: xxx .: Input/output error 错误问题 及 fsck源码下载
  19. UIC564-2 附录7 – 通过氧指数判定材料的阻燃防火性能
  20. 嘘!P站数据分析年报;各省市疫情感染进度条;爱奇艺推出元宇宙App;You推出AI聊天机器人;GitHub今日热榜 | ShowMeAI资讯日报

热门文章

  1. pip install pyodbc : ERROR: Command errored out with exit status 1
  2. 人工智能和溯因推理 AI的历史一直被演绎和归纳所主导
  3. Marlin固件解析G代码部分分析
  4. *寒假水121——叠筐
  5. linux的makefile -I(大写i)-L(大写l)-l(小写l)
  6. linux终端无法输入大写字母,linux不能打大写字母
  7. VueX浏览器刷新如何保存数据
  8. 邮箱如何设置smtp服务器端口,如何改变你的SMTP端口来允许发送电子邮件
  9. 在Arcscene绘制管线三维横断面(AE绘制三维点阵文字)
  10. python appium+夜神模拟器 配置 笔记整理