谈HTTP的KeepAlive

为什么要使用KeepAlive?

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

HTTP头是Connection: Keep-Alive

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

Keep-alive: 300

KeepAlive是不是设置越长越好?

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

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

原文地址:http://www.cnblogs.com/yjf512/archive/2013/07/23/3207850.html

时间: 2024-10-07 17:14:40

谈HTTP的KeepAlive的相关文章

浅谈长连接keepalive和套接字重用reuse对高并发的影响

做采集系统有两年了,第一年主要的设计和代码逻辑是别人写的.但是问题很多. 第二年真正由我接手后,修复了大量的业务逻辑. 遇到的一个核心问题就是数据丢失.最近客户也在问我采集上报的机制,是否使用长连接?我自己联想到套接字的reuse问题. 由于所作的这个项目有两千万的用户量,高峰期tcp连接达到15000到30000并发是每天都会发生的事情. 开始怀疑是这个机制设计得有问题. 再仔细回忆之前学C套接字时的资料,reuse机制是服务端的监听端口时用到的参数,并不会影响客户端SDK的断开重连,实际修改

web app 的技术参考 -- 来自 【百度移动建站指南】

优化页面性能 考虑到移动设备和移动互联网的特点,在进行移动网站的页面开发设计时,一个总的原则是考虑用户访问的效率,降低页面加载时间. 下面的内容来自百度,然后我自己做了笔记.另外可参考这个系列的文章. 减少访问请求数 从设计实现层面简化页面,不要放太多的图片.复杂的表达.动画.视频等等. 这个好理解,二进制数据太占流量. 资源合并及压缩:比如将背景图片.导航图片等等作为一张图片,这样只需一次请求,而不是多次. 资源合并,只用一次请求,解决问题. 压缩,是将文件大小降低,比如css,js去空白.

KeepAlive细谈

来自: http://blog.sina.com.cn/s/blog_e59371cc0102ux5w.html 最近工作中遇到一个问题,想把它记录下来,场景是这样的: 从上图可以看出,用户通过Client访问的是LVS的VIP, VIP后端挂载的RealServer是Nginx服务器. Client可以是浏览器也可以是一个客户端程序.一般情况下,这种架构不会出现问题,但是如果Client端把请求发送给Nginx,Nginx的后端需要一段时间才能返回结果,超过1分30秒就会有问题,使用LVS作为

浅谈http中的KeepAlive

首先就看一下KeepAlive出现的原因吧:  当一个客户端向服务器发送http请求时,两者之间会建立一个tcp连接,然后服务器发回响应信息同时关闭连接.如果请求的的页面中含有别的资源连接,比 如图片.flsah等,就会再次创建连接.KeepAlive的作用就是在第一次创建连接时,服务器会把这个tcp连接保持一段时间(服务器端会有一个 keepaliveTime的最大时间,超过时间就断开连接).这样就不会频繁的去建立tcp连接,同一次请求中的信息传递都可以使用同一个tcp连接. KeepAliv

浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)

1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 全Socket层(SSL)等等,目前互联网主要使用它做静态资源服务器,也可以做代理服务器转发请求(如:图片链等),结合tomcat等 servlet容器处理jsp.1.2.ngnix     —— 俄罗斯人开发的一个高性能的 HTTP和反向代理服务器.由于Nginx 超越 Apache 的高性能和稳

浅谈TCP/IP网络编程中socket的行为

我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: . TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) . Socket I/O系统调用(重点如read/write),这是TCP/IP协议在应用层表现出来的行为. . 编写Performant, Scalable的服务器程序.包括多线程.IO Multiplexing.非阻塞.异步等各种技术. 关于TCP/IP协议,建议参考Richard Stevens的<TCP/IP Illust

KeepAlive详解

转:http://www.cnblogs.com/havenshen/p/3850167.html KeepAlive既熟悉又陌生,踩过坑的同学都知道痛.一线运维工程师踩坑之后对于KeepAlive的总结,你不应该错过! 最近工作中遇到一个问题,想把它记录下来,场景是这样的: 从上图可以看出,用户通过Client访问的是LVS的VIP, VIP后端挂载的RealServer是Nginx服务器. Client可以是浏览器也可以是一个客户端程序.一般情况下,这种架构不会出现问题,但是如果Client

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

相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其是"短连接"VS"长连接") 大致了解加密算法的概念(尤其是"对称加密与非对称加密"的区别) 大致了解 CA 证书的用途 考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下.如果你自认为不是菜鸟,请略过本章节,直接去看"HTTPS 协议的需求&

client,server,nginx 在使用keepAlive里要保持一致,否则起不到效果

为什么要有KeepAlive? 在谈KeepAlive之前,我们先来了解下简单TCP知识(知识很简单,高手直接忽略).首先要明确的是在TCP层是没有“请求”一说的,经常听到在TCP层发送一个请求,这种说法是错误的. TCP是一种通信的方式,“请求”一词是事务上的概念,HTTP协议是一种事务协议,如果说发送一个HTTP请求,这种说法就没有问题.也经常听到面试官反馈有些面试运维的同学,基本的TCP三次握手的概念不清楚,面试官问TCP是如何建立链接,面试者上来就说,假如我是客户端我发送一个请求给服务端