一、简介

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 (应该是秒为单位)

Keep-Alive 总结的更多相关文章

  1. SQL Server 2012故障转移的looksalive check和is alive check

    什么是looksalive check和is alive check SQL Server故障转移集群是建立在windows集群服务上的一种热备的高可用方案.在集群运行过程中,windows集群服务定 ...

  2. Keeping Async Methods Alive

    Consider a type that will print out a message when it’s finalized, and that has a Dispose method whi ...

  3. 转载:有关SQL server connection Keep Alive 的FAQ(3)

    转载:http://blogs.msdn.com/b/apgcdsd/archive/2012/06/07/sql-server-connection-keep-alive-faq-3.aspx 这个 ...

  4. 转载:有关SQL server connection Keep Alive 的FAQ(2)

    转: http://blogs.msdn.com/b/apgcdsd/archive/2012/05/18/sql-server-connection-keep-alive-faq-2.aspx 在下 ...

  5. Keep Alive

    跳板机时经常出现连接被断开的情况.如果发生这种情况,请在客户端配置Keep Alive设置,具体方法参考如下: Windows: secureCRT:Properties -> Terminal ...

  6. How to Keep Alive SSH Sessions

    How to Keep Alive SSH Sessions Many NAT firewalls time out idle sessions after a certain period of t ...

  7. keep alive的相关介绍

        无论Windows还是linux,Keepalive就三个配置参数.下文以linux环境为介绍. Technorati 标签: keepalive     tcp_sock结构体中有三个有关的 ...

  8. linux下socket keep alive讲解

    [需求] 不影响服务器处理的前提下,检测客户端程序是否被强制终了.[现状]服务器端和客户端的Socket都设定了keepalive属性.服务器端设定了探测次数等参数,客户端.服务器只是打开了keepa ...

  9. [Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive

    PM2 is a production process manager for Node.js applications with a built-in load balancer. It allow ...

  10. 【转】Linux下socket keep alive讲解

    [需求]不影响服务器处理的前提下,检测客户端程序是否被强制终了.[现状]服务器端和客户端的Socket都设定了keepalive属性.服务器端设定了探测次数等参数,客户端.服务器只是打开了keepal ...

随机推荐

  1. 多线程随笔知识点总结-NSThread4.1

    线程的状态 状态说明 a.新建 实例化线程对象 b.就绪 向线程对象发送start消息,线程对象被加入可调度线程池等待CPU调度;detach方法和performSelectorInBackGroun ...

  2. linux命令:tar

    1.命令介绍: tar用来打包,压缩和解压文件. 2.命令格式: tar [选项] 文件 3.命令参数: 必要参数有如下: -A 新增压缩文件到已存在的压缩 -B 设置区块大小 -c 建立新的压缩文件 ...

  3. [转]透过 Linux 内核看无锁编程

    非阻塞型同步 (Non-blocking Synchronization) 简介 如何正确有效的保护共享数据是编写并行程序必须面临的一个难题,通常的手段就是同步.同步可分为阻塞型同步(Blocking ...

  4. myeclipse10.7破解成功 但 无法打war包 提示:securecrt alert:integrity ch

    myeclipse10.7破解成功 但 无法打war包  提示:securecrt alert:integrity check error   找了好久才找到解决办法 http://download. ...

  5. Linux学习之路—Linux文件权限

    内容来源于鸟哥私房菜 1.Linux文件属性 1)第一列为文件类型与权限 第一个字符表示文件的类型: [d]表示目录 [-]表示文件 [l]表示连接文件 [b]表示设备文件中可供存储的接口设备,例如硬 ...

  6. LPTHW 笨办法学python 40章 类

    今天读了LPTHW的第40章以后豁然开朗,原来一直愚钝,不太理解类的定义和使用,还有就是不太理解关于self的定义. class MyStuff(object): def __init__(self) ...

  7. devexpress xaf 开发中遇到的问题.

    devexpress xaf 开发中遇到的问题很多久了就忘记了.每天都把开发内容记录下来,方便大家,方便自己

  8. 关于ellipsis多行换行的方案

    WebKit浏览器或移动端的页面在WebKit浏览器或移动端(绝大部分是WebKit内核的浏览器)的页面实现比较简单,可以直接使用WebKit的CSS扩展属性(WebKit是私有属性)-webkit- ...

  9. Android驱动开发前的准备(一)

    Android系统移植与驱动开发概述 1.1 Android 系统架构 1.2 Android系统移植的主要工作 1.3 查看linux内核版本 1.4 linux内核版本号的定义规则 1.5 lin ...

  10. uart启示1_task的写法

    task rx_data_task; input [12:0] RXD; reg [3:0] i; begin for (i=0;i<=13;i=i+1) begin repeat (2603) ...