感觉这就和回字的四种写法一样,并无卵用

原以为http1.1的新特性是提供了keep-alive,后来才知道,keep-alive选项http1.1已经不支持了,http1.1对该功能进行了改版

关于http1.0的扩展,提供的keep-alive选项是这样的,在首部增加:Connection:keep-Alive选项

http1.0默认是不开启的。

对于keep-alive还存在哑代理问题。

哑代理问题主要是,http客户端和服务器端进行通信时,会经过代理服务器,但是代理服务器不一定支持keep-alive。

keep-alive只应该存在一跳,即代理服务器在接收到http请求之后,应该执行Connection首部的规则,并且从首部中删除Connection字段。

但是有些比较老的http代理或者简单代理只是盲中继,只是将字节逐字转发,没有对Connection字段进行处理。

客户端将http数据包发送给代理之后,代理直接转发给http服务器端,http服务器端接收到之后,代理端已经将连接关闭。

但是此时服务器端以为代理端要和自己建立长链接,在接收之后不会关闭连接。

服务器端将带有keep-alive字段的http响应返回给客户端,同样在经过代理时,代理还是原封不动的进行了转发。

当客户端接收到之后以为自己的keep-alive请求得到了支持,因此也会保持连接,然后再在此连接上发送数据。

但是代理端此时认为该连接上将不会再有数据传输,将会等待http客户端关闭连接。

当下次客户端在该连接上发送新的请求时,新请求会被http的代理服务器挂起,因为他认为该连接上已经不会再有数据传输。

这种错误会使服务器和客户端一直挂起,直到设置的连接超时。

所以从技术上来说应该忽略所有来自http1.0设备的首部中的Connection字段。

说完了http1.0 keep-alive的哑代理问题,接下来将说明http1.1的持久连接。

首先http1.1的持久连接 persistent connection是keep-alive连接的目的相同,工作的机制更优。

http1.1的持久连接默认是开启的

http1.0 的哑代理问题的更多相关文章

  1. WebSocket原理及与http1.0/1.1 long poll和 ajax轮询的区别【转自知乎】

    一.WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的ke ...

  2. http1.0 和 http1.1 区别

    http1.0 和 http1.1 主要区别 1.背景   KeepAlive是就是通常所称的长连接.KeepAlive带来的好处是可以减少tcp连接的开销,这对于短response body的请求效 ...

  3. 计算机网络【9】—— HTTP1.0和HTTP1.1的区别及常见状态码

    一.HTTP1.0与HTTP1.1的区别 1.HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理 HTTP 1.0规定浏览器与服务器只保持 ...

  4. HTTP1.1与HTTP1.0

    本文转载自: http://www.cnblogs.com/shijingxiang/articles/4434643.html 1.可扩展性 a.在消息中增添版本号,用于兼容判断,版本号只能判断逐段 ...

  5. HTTP1.0,1.1,2.0,HTTPS

    HTTP1.0/1.1/2.0/HTTPS HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接收HTML页 ...

  6. HTTP1.0与HTTP1.1的区别

    HTTP/1.1与HTTP/1.0的区别 下面主要从几个不同的方面介绍HTTP/1.0与HTTP/1.1之间的差别,当然,更多的内容是放在解释这种差异背后的机制上. 1 可扩展性 可扩展性的一个重要原 ...

  7. http1.1和http1.0区别

    http1.1和服务器建立连接可以获得多个资源 http1.0和服务器建立连接可以获取一个值

  8. HTTP详解(3)-http1.0 和http1.1 区别

    HTTP详解(3)-http1.0 和http1.1 区别 分类: 网络知识2013-03-17 16:51 1685人阅读 评论(0) 收藏 举报   目录(?)[+]   翻了下HTTP1.1的协 ...

  9. HTTP实现长连接(TTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持Connection: keep-alive)

    HTTP实现长连接 HTTP是无状态的 也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接.如果客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web ...

随机推荐

  1. git学习——Github关联(2)

    一.参考学习链接 1.重点看Github与Git的关联. http://www.cnblogs.com/schaepher/p/5561193.html#github 2.git的全面详细介绍. ht ...

  2. SQL Server学习之路(七):Python3操作SQL Server数据库

    0.目录 1.前言 2.准备工作 3.简单测试语句 4.提交与回滚 5.封装成类的写法 1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话, ...

  3. CS Round#50 D min-races

    Min Races Time limit: 1000 msMemory limit: 256 MB   In a racing championship there are N racing driv ...

  4. 关于C#中函数的认识

    对于C#语言中的函数,大概分之为函数的声明及其调用. 函数的声明: 1.函数的声明是指给一段代码取名称. 2.函数的声明位置必须在类中. 3.函数声明的语法: 函数声明的语法:static void ...

  5. linux工作中遇到的问题总结---更新中

    今天这个,严格来说不算一篇文章,我只想把我工作中遇到的问题分享给大家,让大家少犯错误. 1.安装rmp包时出现错误 :header V3 DSA signature: nokey ,key id .. ...

  6. LDA数学八卦笔记(一)Gamma函数

    Technorati Tags: LDA主题模型

  7. weex加入iconfont

    weex加入图标可能是项目开发中最头疼的事情了,还好有 阿里巴巴矢量图标库解决了开发时的图标问题,下面我们一起来踩坑吧<text class="left"></ ...

  8. nginx、fastCGI、php-fpm关系梳理

    前言: Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx ...

  9. iOS 跳转到 App Store 下载评分页面

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  10. asp.net mvc 下拉列表

    第一步:新建一个格式化下拉列表的公共类文件 using System; using System.Collections; using System.Collections.Generic; usin ...