一.概念

HTTP长连接,也称持久连接,是使用同一个TCP连接来发送和接受多个HTTP请求/应答,而不是位每一个新的请求/应答打开新的TCP连接。这种方式由于通信连接一直存在,此种方式常用于P2P通信。

HTTP短链接,浏览器和服务器每进行一次HTTP操作,就会建立一个连接,但是任务结束后就终端连接,不会像长连接那样保持连接。此方式多用于一点对多点通讯,c/s通信。

二。长连接和短链接的操作过程

长连接的操作步骤是:

建立连接----数据传输----保持连接-----数据传输----保持心跳------关闭连接

短链接的操作步骤:

建立连接---数据传输---关闭连接...建立连接--数据传输---关闭连接撒

三. 长连接和短链接的使用时机

长连接多用于操作频繁,点对点通讯 ,而且连接数不太多的情况。每个TCP连接都需要三次握手,断开都要三次挥手。

如果每次操作都要建立连接然后在操作的话,处理速度会降低,所以每次操作后,下次操作用直接发送数据就好了,不用在建立TCP连接。例如数据库就用长连接,并且同时有成千上万的用户,每个用户都占有一个链接的话,可知服务器压力有多大。所以并发量大,又不频繁操作情况下需要短连接。

总之:长连接和短链接根据需求而定。长连接和短链接的产生在于产生于client和server采用的关闭策略,具体场景应用具体策略。没有十全十美的选择,只有合适的选择。

四,优点和不足

长连接优势:

由于同时打开的tcp连接较少,会使用较少的cpu和内存

允许请求和应答的HTTP管线化(将多个HTTP request 整批提交的技术,而在传送过程中不需要先等待服务器的回应)。

通过减少TCP开启引起的包的数目,降低网线堵塞

不需要进行握手降低延迟

报告错误无需关闭TCP连接

短链接优势:

web网站的http服务一般都用短链接。因为长连接对于服务器消耗一定的资源。向web网站这种多用户用短链接更省资源。并发大操作不频繁

长连接劣势:

对于单个文件不断请求的服务,可能造成极大的性能影响,因为在文件请求之后还保持了很长时间的不必要的连接

短链接的劣势:

如果频繁的的通信会早成socket错误,而且频繁的socket创建是对资源的浪费

五。http长连接的设置

客户端设置失效时间,服务端设置不失效

  客户端设置 Connection: keep-alive 和 Keep-Alive: timeout=30。
  服务端设置永久连接,即 Connection: keep-alive。
  连接将一直保持。

最新文章

  1. 小技巧,关于OC打印指针地址和arc下的retaincount
  2. XH
  3. 自增锁ID复用问题
  4. IOS项目集成ShareSDK实现第三方登录、分享、关注等功能(备用)
  5. mvc模式实现
  6. 1.2、Mybatis二级缓存测试
  7. Flex3在应用RemoteObject出现问题解决方法
  8. Java基础知识强化之集合框架笔记05:Collection集合的遍历
  9. 菜鸟级SQL Server21天自学通(文档+视频)
  10. ContentResolver + SqliteOpenHelper + ContentProvider 理解
  11. ComboBox值排序
  12. Linux下Tomcat进行远程调试
  13. 洛谷 P1462 解题报告
  14. excle 填充单元格内容到相同长度
  15. QTP自动化测试-按行取值(win10下输入?问题)-笔记20181119
  16. zabbix添加ceph监控
  17. 自制电脑usb红外遥控键盘
  18. Java面向对象 第2节 Scanner 类和格式化输出printf
  19. PXE安装操作系统
  20. 笔记:使用mailto在网页中链接Email地址

热门文章

  1. 反射 1 加载指定的DLL
  2. Java Maven环境搭建
  3. IaaS--云硬盘(何恺铎《深入浅出云计算》笔记整理)
  4. ubuntu22.04安装 kubernetes(docker)
  5. MyBatis_06(自定义映射resultMap)
  6. thirty-two(模型点击展示)react-three-fiber
  7. sqoop mysql2hive
  8. 【Quartus系列】实验一: 3-8译码器(原理图输⼊设计)
  9. .Net Core WebApi AutoFac用法
  10. mysql 取出分组后价格最高的数据