一、简介

Keep-Alive是http请求头信息中的一个配置参数,开启之后俗称保持HTTP长连接,HTTP 1.0和HTTP 1.1都支持,HTTP1.0中该属性默认是关闭的,可在头信息中配置开启(Connection keep-alive),HTTP1.1中该属性是默认开启的,协议版本的控制权掌握在浏览器和服务器,现在市面上的浏览器基本上都默认使用HTTP1.1,若双方协议版本不匹配,可向下兼容,如浏览器为HTTP1.1,服务器为HTTP1.0,则数据将按照HTTP1.0进行传输。主流服务器如nginx都默认使用HTTP1.1。

二、对比

2.1、短连接

建立tcp连接

发起请求

响应请求

断开tcp连接

建立tcp连接

发起请求

响应请求

……

2.2、长连接

建立tcp连接

发起请求

响应请求

发起请求

响应请求

……

2.3、短连接劣势

如访问一个页面,页面中有多张图片,每获取一直图片就要重新建立一次连接,造成了短时间内服务器的访问压力,对用户来说,图片会加载的很慢,影响用户体验。

2.4、长连接的劣势

用户如果访问页面后没有关闭页面,连接会一直存在,服务器的同时连接数相对而言会处于一个比较高的值,占用过多的网络带宽,如果服务器性能或网络带宽不是很优越,很容易造成服务器的宕机。

三、结论

建议服务器对于每个长连接每隔一段时间自动断开,对应nginx服务器的参数配置如下,值得注意的是现在市面上很多浏览器都内置了这个功能。

keepalive_timeout  120 (应该是秒为单位)

最新文章

  1. jQuery源码分析系列(38) : 队列操作
  2. Date和Calendar时间操作常用方法及示例
  3. DPM检测模型 VoC-release 5 linux 下编译运行
  4. bzoj 1101 zap
  5. 自动化测试UI Test, Performance Test, Load Test 总结整理
  6. Native VS H5 VS React Native
  7. Linux使用有线上网教程
  8. POJ C++程序设计 编程题#2 魔兽世界之二:装备
  9. 【Linux/Ubuntu学习4】ubuntu 下面安装 vim 的问题
  10. javap 可以打印出用于jni调用的java函数的签名信息
  11. [Ramada] Build a Functional Pipeline with Ramda.js
  12. jQuery中的html,val,text区别
  13. Android简单登录系统
  14. python_斐波那契数列
  15. timeCache.go
  16. vue图表
  17. explan各项说明
  18. Ollydbg
  19. (1)I/O流 (2)线程
  20. ASP.NET 网页动态添加客户端脚本

热门文章

  1. react native 之上传文件
  2. re.S
  3. New Training Table
  4. 14——小心copying行为
  5. Windows下VTK6.0.0安装详解(CMake使用说明)
  6. [ADB]ADB(Android Debug Bridge)简介及基础(不包含命令)
  7. 全新的跨平台app软件开发工具——Lae软件开发平台
  8. JavaScript中字符串去掉特殊字符和转义字符
  9. MyEclipse JAX-WS Web Service
  10. 迅达云s3cmd客户端mac平台部署说明