HTTP协议中keep-alive


一 . http协议是有连接的协议,这样每一个连接过来都要重新打开一个tcp的http socket,短期内同一个host 对服务器的请求就会很慢,若是能够保持住连接,就可以节省socket open,socket close 等时间,早期在http1.0协议中附加了keep-alive字段,connection:keep-alive ,客户端发送http包含一个keepa-live段,S端识别并返回一个keep-alive这样一个保持的链接就建立了,http1.1 中所有的链接默认都被保持,这时客户端发送一个connection:close 字段表示关闭这个链接.  

在linux 上#tcpdump -n host 218.1.57.236 and port 80 监控信息  

nginx 上配置

client_header_timeout 默认60s 指定等待client发送一个请求头的超时时间. 如果在超时时间内没有收到任何请求头,nginx返回408 request time out

keepalive_timeout 默认75s S在75s后主动关闭http链接. 配置了这个参数后,S端才会返回keep-alive 的header ,否则即使http1.1 也不会返回header

二. http的keep-alive 和tcp的keep-alive http的keep-alive 相当于保存了一个连接池,使用完之后不会立即销毁而是放在池子里,下次用的时候重新用.tcp的keep-alive 是保活机制,防止对面的服务器挂掉,而浪费这个连接,如果挂掉之后会返回rst.

  

优质内容筛选与推荐>>
1、Asp.Net开发架构设计
2、查看
3、spring属性的注入
4、java怎样将读取数据写入数据库
5、Python 函数式编程


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号