谈HTTP的KeepAlive

简介:

为什么要使用KeepAlive?

 

终极的原因就是需要加快客户端和服务端的访问请求速度。KeepAlive就是浏览器和服务端之间保持长连接,这个连接是可以复用的。当客户端发送一次请求,收到相应以后,第二次就不需要再重新建立连接(慢启动的过程),就可以直接使用这次的连接来发送请求了。在HTTP1.0及各种加强版中,是默认关闭KeepAlive的,而在HTTP1.1中是默认打开的。

 

HTTP头是Connection: Keep-Alive

要设置保持多少时间和连接使用:

Keep-alive: 300

 

KeepAlive是不是设置越长越好?

 

并不是这样的。KeepAlive在增加访问效率的同时,也会增加服务器的压力。对于静态文件是会提高其访问性能,但是对于一些动态请求,如果在一次和下一次的请求过程中占用了服务器的资源,则会导致意想不到的结果。

 

在nginx中关闭keepalive使用keepalive_timeout 0;就可以进行关闭。记住如果没有设置的话默认是开启的。

目录
相关文章
|
4月前
|
网络协议 应用服务中间件 nginx
Nginx的http块sendfile,keepalive_timeout的配置指令说明
Nginx的http块sendfile,keepalive_timeout的配置指令说明
|
6月前
|
存储 监控 安全
Keepalive 具体介绍
Keepalive 具体介绍
阿里一面:TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?
大致问题是,TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗? 这是个好问题,应该有不少人都会搞混,因为这两个东西看上去太像了,很容易误以为是同一个东西。 事实上,这两个完全是两样不同东西,实现的层面也不同:
keepalive
好好学习
68 0
keepalive
|
网络协议 Java 应用服务中间件
JMeter Sampler-http请求之KeepAlive使用总结
JMeter Sampler-http请求之KeepAlive使用总结
659 0
|
网络协议 Linux 关系型数据库
TCP Keepalive HOWTO
TCP Keepalive HOWTO Fabio Busatto 2007-05-04 Revision History Revision 1.0 2007-05-04 Revised by: FB First release, reviewed by TM.
1233 0
|
网络安全 Apache Ruby
puppet连载三:服务端安装http、passenger
服务端安装插件: yum install -y ruby-devel ruby-libs rubygems libcurl-devel httpd httpd-devel apr-util-devel apr-devel mod_ssl gcc-c++...
1067 0
|
网络协议 应用服务中间件 nginx
tcp/http类nginx服务器keepalive_requests数据丢失问题
tcp/http基于请求/响应式交互的上层协议服务器或反向代理服务一般有一个keepalive_requests参数可以指定一条tcp连接上最多能发送的请求数量,超过keepalive_requests数量时server端会关闭tcp连接, 在使用这个指令做服务端时可能导致与其连接的client端数据丢失问题.
6431 0
|
应用服务中间件 nginx
下一篇
无影云桌面