HTTP keep alive

今天有人问起 http request header 中的 Keep-Alive:115 是什么意思,首先我们要搞明白 HTTP KeepAlive

 

Request Headers

GET / HTTP/1.1

Host: www.taobao.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Encoding: gzip,deflate

Accept-Language: en-us,en;q=0.5

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.

Keep-Alive: 115
Connection: keep-alive

 

Response Header
HTTP/1.1 200 OK

Server: nginx

Date: Thu, 12 May 2011 11:02:36 GMT

Content-Type: text/html; charset=GB2312

Transfer-Encoding: chunked

Connection: keep-alive

Vary: Accept-Encoding

Expires: Thu, 12 May 2011 12:02:36 GMT

Cache-Control: max-age=3600

Content-Encoding: gzip

 

HTTP1.0 官方协议中并没有对 keepalive 的明确支持,所有的 HTTP 请求是如下流程:
1.client
发起一个请求 ;
2.server
收到请求后,回复一个响应 ;
3.
连接关闭。

如果要在 HTTP1.0 中支持 keep alive ,你必须明确的在 header 中加入 Connection:keep-alive
1.client
发起一个包含 Connection:keep-alive 的请求
2.server
收到请求后,如果 server 支持 keepalive ,回复一个包含 Connection:keep-alive 的响应,不关闭连接,否则回复一个包含 Connection:close 的响应,关闭连接。
3.
如果 client 收到包含 Connection:keep-alive 的响应,向同一个连接发送下一个请求,直到一方主动关闭连接。

因为 keepalive 在很多情况下能够重用连接,减少资源消耗,缩短响应时间。所以在 HTTP1.1 中缺省就是支持 keepalive 的,如果响应方不 支持 keepalive, 需要明确的标识 Connection:close Connection:keep-alive 就没什么意义了。

我们再说一下 Keep-Alive:115 ,这个在 mozilla 的浏览器的请求头中经常出现,是指 timeout 时间,浏览器将在这个时间后关闭连接。其意义在于服务端可以选择不主动关闭连接而是等待客户端来关闭。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值