Keep-Alive 是什么?
概观
默认情况下,HTTP链接通常在请求完成之后关闭。这意味着服务端在完成响应的交付之后便关闭了TCP链接。为了让链接保持打开,来满足多请求,可以使用keep-alive 头信息。
没有Keep-Alive的情况下,HTTP是怎么工作的 1.客户端需要重新创建一个链接和服务器交互,用以接收一个文件。
2.客户端使用一个新的链接来向服务器请求HTML文件,这个连接在接收完文件的时候就会被关闭。
3.浏览器解析HTML文件并检查完成网页的展示是否还需要其他文件。(例如css文件,js文件,图片)
4.经过彻底的分析,浏览器再重新创建链接来请求这每一个文件。 我们需要Keep-Alive
创建多个链接可能会降低加载速度,同时也会利用服务器更多资源。我们可以通过启用Keep-Alive来克服这个问题,通过单个链接来传递这些文件,如此就避免了重复的创建和关闭新连接。如果没有启用Keep-Alive,展示一个网页的过程可能需要相当长的时间。
如何开启Keep-Alive
Keep-Alive的启用是通过在HTTP 头信息中明确声明来完成的。以apache web server为例,如果你有权限访问Apache的配置文件(httpd.conf),你可以在这里打开keep-alive。配置方法见下文。
3个影响Keep-Alive功能的属性。
Keep-live
使用“KeepAlive On”来启用,使用“KeepAlive Off”来禁用。开启之后的响应头大概如下: HTTP/1.1 200 OK Connection: Keep-Alive Content-Type: text/html; charset=UTF-8 Date: Thu, 15 Jan 2017 16:45:29 GMT Content-Length: 1845 Keep-Alive: timeout=10, max=20 Server: Apache/2.4.9 (Unix) PHP/5.6.2 MaxKeepAliveRequests
用来设置KeepAlive链接的最大数量。合适的值取决于实际的情况。
KeepAliveTimeout
这个设置可以防止未使用的链接占用太长久。其实就是链接需要keep多久的问题。比如设置7到10秒通常就可以了。在流量较高的情况下这个值可能就得设置大一点了,以确保没有频繁的TCP链接重新启动。如果这个值设置太小了,那么也许就是去了keep-alive本身的目的了。
Keep-Alive的益处 1.减少CPU使用:创建一个新的TCP链接会消耗一些资源,例如CPU和内存的使用。使链接保持存活的时间长一点可以避免频繁的创建新链接,从而减少资源使用。
2.网页加载速度:使用同一个链接来加载多个文件可以是网页加载的快点。
3.HTTPS:https非常消耗资源,所以强烈建议对https开启keep-alive,并尽可能使用HTTP/2进行一些调整。 如果你使用的是HTTP/1.1,它的实现方式与HTTP/1.0的keek-live不同,HTTP/1.1的链接默认是保持活跃的,它假定所有的链接都是持久的,除非响应头中包含:“Connection:close”头。但是如果不发送“Connection:close”头并不意味着链接会永远持续,链接还是会被关闭的。

http协议Keep-Alive的更多相关文章

  1. MQTT 协议学习:007-Keep Alive 连接保活 与 对应报文(PINGREQ、PINGRESP)

    背景 keep alive 是 CONNECT 报文中可变头的一部分. 我们提到过 Broker 需要知道 Client 是否非正常地断开了和它的连接,以发送遗愿消息.实际上 Client 也需要能够 ...

  2. 简约之美Jodd-http--深入源码理解http协议

    Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架.简单,却很强大! jodd-http是一个轻巧的HTTP客户端.现在我们以一个简单的示例从源码层看看是如何实现的? Http ...

  3. 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  4. 浅谈HTTPS和SSL/TLS协议的背景和基础

    相关背景知识要说清楚HTTPS协议的实现原理,至少要需要如下几个背景知识.大致了解几个基础术语(HTTPS.SSL.TLS)的含义大致了解HTTP和TCP的关系(尤其是"短连接"和 ...

  5. http2协议翻译(转)

    超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/2通过引进报头字段压缩以及 ...

  6. Linux内核--网络栈实现分析(四)--网络层之IP协议(上)

    本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7514017 更多请看专栏,地址 ...

  7. MQTT协议(一)

    MQTT(Message Queue Telemetry Transport),遥测传输协议,提供订阅/发布模式,更为简约.轻量,易于使用,针对受限环境(带宽低.网络延迟高.网络通信不稳定),可以简单 ...

  8. HTTP协议的头信息详解

    转载地址:http://blog.csdn.net/guoguo1980/article/details/2649658 HTTP(HyperTextTransferProtocol)是超文本传输协议 ...

  9. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  10. HTTP协议学习

    面试过程中又一个常见的问题,http协议,因为做服务器开发如果用http协议的话,现在各种开源软件都封装好了,python中只需要简单的继承定义好的类,重写get或者post等方法,几行代码就可以搭建 ...

随机推荐

  1. MySQL忘记密码解决方案

    1.修改本地mysql目录中的my.ini文件 添加skip-grant-tables 2.在win +r 输入cmd,进行mysql的重启启动操作 net stop MySQL 停止服务      ...

  2. Head First HTML与CSS 学习笔记

    1.使用<a>元素创建一个超文本链接,链接到另一个Web页面.<a>元素的内容会成为Web页面中可单击的文本.href属性告诉浏览器链接的目标文件. 2.块元素特立独行,内联元 ...

  3. js将json数据动态生成表格

    今天开发中遇到需要展示动态数据的问题, 具体要求是后端传来的json字符串,要在前端页面以table表格的形式展示, 其实没啥难的,就是拼接table标签,纯属体力活,于是自己写了个呆萌,保存起来,以 ...

  4. what is out of band mode.

    Most of the steps are the same, except instead of sending an URL as the oauth_callback to request_to ...

  5. Wordpress在主题或者插件中自定义存储附件的方法

    1.前端使用form表单 //单文件上传,我的业务需求中限制了必须上传图片 <input type="file" name="singlename" ac ...

  6. Python之numpy库

    NumPy库知识结构 更多详细内容参考:http://www.cnblogs.com/zhanglin-0/p/8504635.html

  7. The last packet sent successfully to the server was 0 milliseconds ago

    出现异常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由于数据库回收了连接,而系统的缓 ...

  8. Window Handle介绍

    HANDLE(句柄)是Windows操作系统中的一个概念.在Windows程序中,有各种各样的资源(窗口.图标.光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即句柄.句柄 ...

  9. hbase使用中需要注意一些问题

    接触hbase已经两年之久,但是真正的在实际项目中使用却只有半年的时间,使用过程中,一方面在在为hbase强大的性能兴奋之余,另一方面却也给我和我的团队造成了很多的麻烦,起初在使用我的水平也就停留在会 ...

  10. poj1011---DFS

    题目的大意是给了你有限个棍子以及每个棍子的长度,而且所有的棍子都是由有限个长度相同的棍子截断得到的,让你求被截棍子的最小长度 搜索剪枝神题,做的我够呛 提供一个比较好的解题报告  http://www ...