zoukankan      html  css  js  c++  java
  • 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.

      

  • 相关阅读:
    java中创建线程的方式
    idea查看一个接口的子接口或实现类的快捷键
    idea查看源码没有注释的问题
    spring中的Aop
    spring中的ApplicationListener监听器
    spring中的事务管理
    IDEA创建springboot 项目
    xiaopiu产品设计
    java 6大设计原则 一:观察者模式
    java面向对象
  • 原文地址:https://www.cnblogs.com/liuyuxing/p/5085426.html
Copyright © 2011-2022 走看看