zoukankan      html  css  js  c++  java
  • HTTP协议中的keepalive

    HTTP协议中的keep-alive

    HTTP协议中的keep-alive

    Table of Contents

    1 概述

    通常,我们说的http长连接,实际上是包含2种不同的含义:

    1. comet,是服务器和浏览器之间维持一个长时间的http连接,用于服务器消息的实时推送,见Web应用中的Comet技术,这种模式下,浏览器只会发送一次request请求,而server端会不断吐出消息给浏览器端,直到超时或者手工终止连接
    2. keep-alive,是http协议中定义的一个规范,它是利用同一个tcp连接处理多个http请求和响应,节省了tcp连接3次握手的开销,同时也就减少了后续请求的延时

    1.1 HTTP/1.0

    在HTTP/1.0版本中,并没有官方的标准来规定Keep-Alive如何工作,因此实际上它是被附加到HTTP/1.0协议上,如果客户端浏览器支持 Keep-Alive,那么就在HTTP请求头中添加一个字段 Connection: Keep-Alive,当服务器收到附带有Connection: Keep-Alive的请求时,它也会在响应头中添加一个同样的字段来使用Keep-Alive。这样一来,客户端和服务器之间的HTTP连接就会被保持,不会断开(超过Keep-Alive规定的时间,意外断电等情况除外),当客户端发送另外一个请求时,就使用这条已经建立的连接

    1.2 HTTP/1.1

    在HTTP/1.1版本中,默认情况下所在HTTP1.1中所有连接都被保持,除非在请求头或响应头中指明要关闭: Connection: Close ,所以在1.1版本中,Connection: Keep-Alive字段实际上已经意义不大了

    如果想关闭keepalive,在某些服务器上,只需将keepalivetimeout设为0即可.

    resin/tomcat等容器也都是支持Keepalive的,JDK中的URL类同样默认支持keepalive

    要想真正理解keep-alive长连接模式,我们可以使用wireshark或tcpdump去抓包

    对于一个没有开启keep-alive的server,response会返回Connection: Close,然后tcp连接马上就关闭了.

    Date: 2012-12-25 Tue

    Author: liweilijie

    Org version 7.9.2 with Emacs version 23

    Validate XHTML 1.0
  • 相关阅读:
    php命令注入
    mysql事物
    安装php环境
    移除服务器缓存实例
    show user profile synchronization tools
    manual start user profile import
    JSON is undefined. Infopath Form People Picker in SharePoint 2013
    asp.net web 应用站点支持域账户登录
    Load sharepoint envirement by powershell
    sharepoint 2016 download
  • 原文地址:https://www.cnblogs.com/liweilijie/p/2832672.html
Copyright © 2011-2022 走看看