Keep-Alive 来源 :http://www.nowamagic.net/academy/detail/23350305

服务器心跳  来源 :http://www.cnblogs.com/lwy19998273333/p/6078571.html

服务响应时间过长时,

(1)对于 https 请求, 需要设置 keepalive, 这样可以使得后续访问省略 SSL 握手环节。节省响应时间。但是, 对于频率太低的访问就没什么帮助了

(2)对于一些低频访问, 常用的做法是增加心跳. 但问题会更加复杂, 即要考虑到强行保持连接对服务器服务能力的影响, 又要考虑到由此引入的代码复杂性, 当然最重要的还是要考虑业务的实际情况

❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀

HTTP Keep-Alive

在http早期,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接。

使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。

但是,keep-alive并不是免费的午餐,长时间的tcp连接容易导致系统资源无效占用。配置不当的keep-alive,有时比重复利用连接带来的损失还更大。所以,正确地设置keep-alive timeout时间非常重要。

keep-alive timeout

Httpd守护进程,一般都提供了keep-alive timeout时间设置参数。比如nginx的keepalive_timeout,和Apache的KeepAliveTimeout。这个keepalive_timout时间值意味着:一个http产生的tcp连接在传送完最后一个响应后,还需要hold住keepalive_timeout秒后,才开始关闭这个连接。

当httpd守护进程发送完一个响应后,理应马上主动关闭相应的tcp连接,设置 keepalive_timeout后,httpd守护进程会想说:”再等等吧,看看浏览器还有没有请求过来”,这一等,便是keepalive_timeout时间。如果守护进程在这个等待的时间里,一直没有收到浏览发过来http请求,则关闭这个http连接。

❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀  ❀

什么是心跳机制?
就是每隔几分钟发送一个固定信息(自定义的结构体心跳包)给服务端,服务端收到后回复一个固定信息,以确保连接的有效性的机制。如果服务端几分钟内没有收到客户端信息则视客户端断开。

发包方:可以是客户也可以是服务端,看哪边实现方便合理。 心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。心跳包主要也就是用于长连接的保活和断线处理。一般的应用下,判定时间在30-40秒比较不错。如果实在要求高,那就在6-9秒。

最新文章

  1. com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0
  2. 在MacOS 10.12上安装Tomcat8.5
  3. JAVA 入门第一章(语法基础)
  4. MySQL 更新语句技巧
  5. CI框架--事务
  6. weak_ptr的一点认识
  7. PS微观效果
  8. 第六百二十一天 how can I 坚持
  9. SQL Convert XML to Table
  10. POJ 1184 聪明的打字员
  11. 【OGG】OGG基础知识整理
  12. 深入理解Java虚拟机到底是什么
  13. 基于注解的SpringMVC自定义DispatcherServlet配置
  14. springboot增删改查
  15. Java 导出 Excel 列号数字与字母互相转换工具
  16. 阿里云ACE深圳同城会 开始报名
  17. cf666E. Forensic Examination(广义后缀自动机 线段树合并)
  18. 使用EF6连接mariaDB出现中文查找不到数据的问题
  19. asp.net MVC 中 Session统一验证的方法
  20. prepareEditor

热门文章

  1. 最短路径:初涉Dijkstra算法
  2. Excel_单元格格式_查找替换、定位
  3. 牛客网剑指offer第19题——顺时针打印矩阵
  4. js获取时间及转化
  5. mybatis中用到的9种设计模式
  6. KMP刷题记录
  7. [TJOI2015] 概率论 - Catalan数
  8. Lucene使用IKAnalyzer分词
  9. hibernate报错:MappingException: Could not determine type for...解决办法
  10. ImportError: libzmq.so.5 报错