服务端程序的keeplive

本文详细介绍了HTTP协议中的KeepAlive机制,旨在减少TCP连接的频繁建立与关闭,提高服务器性能。KeepAlive在HTTP1.0和1.1中的实现方式有所不同,允许在一次连接中处理多个请求。文章讨论了不同场景下启用或禁用KeepAlive的策略,并提供了Windows和Linux下设置KeepAlive参数的示例代码。
摘要由CSDN通过智能技术生成

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

KeepAlive的工作原理:
 
在HTTP1.0和HTTP1.1协议中都有对KeepAlive的支持。其中HTTP1.0需要在request中增加“Connection: keep-alive” header才能够支持,而HTTP1.1默认支持。(大家可以利用抓包工具看一下)
 
HTTP1.0 KeepAlive支持的数据交互流程如下:
 
a)Client发出request,其中该request的HTTP版本号为1.0。同是在request中包含一个header:“Connection: keep-alive”。
 
b)Web Server收到request中的HTTP协议为1.0及“Connection: keep-alive”就认为是一个长连接请求,其将在response的header中也增加“Connection: keep-alive”。同是不会关闭已建立的tcp连接。
 
c)Client收到Web Server的response中包含“Connection: keep-alive”,就认为是一个长连接,不close tcp连接。并用该tcp连接再发送request。(跳转到a))
 
HTTP1.1 KeepAlive支持的数据交互流程如下:
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值