HTTP 1.1与HTTP 1.0的比较

转载 2006年06月22日 09:24:00
一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当WEB浏览器访问这个网页文件时,浏览器首先要发出针对该网页文件的请求,当浏览器解析WEB服务器返回的该网页文档中的HTML内容时,发现其中的<img>图像标签后,浏览器将根据<img>标签中的src属性所指定的URL地址再次向服务器发出下载图像数据的请求,如图3.3所示。
 
图3.3
显然,访问一个包含有许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个文档和图像,上一次和下一次请求完全分离。即使图像文件都很小,但是客户端和服务器端每次建立和关闭连接却是一个相对比较费时的过程,并且会严重影响客户机和服务器的性能。当一个网页文件中包含Applet,JavaScript文件,CSS文件等内容时,也会出现类似上述的情况。
为了克服HTTP 1.0的这个缺陷,HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。基于HTTP 1.1协议的客户机与服务器的信息交换过程,如图3.4所示。
图3.4
可见,HTTP 1.1在继承了HTTP 1.0优点的基础上,也克服了HTTP 1.0的性能问题。不仅如此,HTTP 1.1还通过增加更多的请求头和响应头来改进和扩充HTTP 1.0的功能。例如,由于HTTP 1.0不支持Host请求头字段,WEB浏览器无法使用主机头名来明确表示要访问服务器上的哪个WEB站点,这样就无法使用WEB服务器在同一个IP地址和端口号上配置多个虚拟WEB站点。在HTTP 1.1中增加Host请求头字段后,WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,这才实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点。HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。
Accept-Language
Accept-Language头字段用于指定客户机期望服务器返回哪个国家语言的文档,可以指定多个以逗号分隔的国家语言。对于一些WEB站点,可以根据用户所使用的浏览器国家语言版本的不同,分别返回该国家语言的网页文档。例如,使用中文的IE浏览器访问www.google.com站点时,服务器返回的是使用中文语言的网页文件。单击IE浏览器的“工具”àInternet选项”菜单,在打开的“Internet选项”对话框中,单击“语言”按钮,在打开的“语言首选项”对话框中添加英语,并将其上移到语言列表中的第一个位置,如图3.14所示。
3.14
设置好语言首选项后,再次访问www.google.com站点,这时服务器返回的是使用英语的网页文件。上面的实验结果很可能会受到google站点策略调整和Cookie的影响,例如,作者在编写本书的初稿时,按照上面的操作,看到了预期的效果,但等到作者几个月后再次校稿时,即使将英语设置成了语言首先项,但所看到的结果却仍然是中文网页。这可能是由于英语已成为了国际通用语言的原因,google对语言首选项设置成英语的情况进行了忽略吧!如果把语言首选项设置成日语后,服务器可以返回日语的网页文件。
WEB服务器上实现上述功能的原理非常简单,因为,IE浏览器会根据“语言首选项”对话框中的语言列表,生成相应的Accept-Language请求头,例如,
    Accept-Language: en-gb,zh-cn
WEB服务器只要检查Accept-Language请求头中的信息,按照其中设置的国家语言的先后顺序,就知道应该返回哪种国家语言的网页文档给浏览器。如果WEB服务器不能返回位于Accept-Language设置值前面的国家语言的网页文档时,WEB服务器将返回后面的国家语言的网页文档。关于各个国家语言的名称信息,例如,中国是zh-cn,可以参阅RFC 1766,其实,只要在图3.14中添加进某个国家的语言,显示在中括号里面的内容就是这个国家语言的名称。
:动手体验:Accept-Language头字段的作用
1)在命令行窗口中执行telnet www.google.com 80,在成功连接后启动的telnet程序窗口中,输入如下几行内容:
    GET / HTTP/1.1
    Host:
    Accept-Language: en-us,zh-cn
    <空行>
可以看到google返回的正文部分是英文字符的网页文档。省略上面的Accept-Language字段部分,google默认返回的正文部分也是英文字符的网页文档。
2)重新连接上google站点,在成功连接后启动的telnet程序窗口中,输入如下几行内容:
    GET / HTTP/1.1
    Host:
    Accept-Language: zh-cn
    <空行>
可以看到google返回的正文部分是中文字符的网页文档。
 

HTTP1.0 HTTP 1.1 HTTP 2.0主要区别

HTTP1.0 HTTP 1.1主要区别 长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一...
  • linsongbin1
  • linsongbin1
  • 2017年02月11日 13:48
  • 12091

HTTP1.0和HTTP1.1区别及http状态码

HTTP1.0和HTTP1.1的主要区别 1,HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象,; 2,HTTP/1.1默认使用持久连接(然而,HTTP/1.1...
  • wangiijing
  • wangiijing
  • 2016年08月19日 10:13
  • 2255

HTTP状态码及HTTP 1.1与HTTP 1.0的比较

HTTP 11与HTTP 10的比较 1xx临时响应 2xx 成功 3xx 重定向 4xx请求错误 5xx服务器错误HTTP 1.1与HTTP 1.0的比较一个WEB站点每天可能要接收到上百万的用户请...
  • sinat_29912455
  • sinat_29912455
  • 2016年04月11日 01:00
  • 1462

HTTP 1.1与HTTP 1.0的比较

一、HTTP简介 web浏览器和服务器之类的交互过程必须遵守的协议。HTTP协议是TCP/IP中的一个应用协议。用来协议数据交换过程和数据本身的格式.主要的有HTTP/1.0和HTTP1.1。   H...
  • woshixuye
  • woshixuye
  • 2014年01月29日 13:42
  • 8246

HTTP1.0、HTTP1.1和HTTP2.0的区别

延迟: 浏览器阻塞(HOL blocking):浏览器会因为一些原因阻塞请求。浏览器对于同一个域名,同时只能有 4 个连接(这个根据浏览器内核不同可能会有所差异),超过浏览器最大连接数限制,后续...
  • jek123456
  • jek123456
  • 2017年08月02日 09:20
  • 756

HTTP详解( HTTP1.0和1.1 POST和GET区别)

超文本传输协议(HTTP)是一种应用协议用 于分布式,协作,超媒体信息系统。HTTP是交换或转让的超文本的协议。 HTTP函数作为请求-响应于协议的客户端-服务器计算模式。 HTTP是一个应用层协...
  • github_35124642
  • github_35124642
  • 2016年08月21日 00:12
  • 2545

http1.0和http1.1的区别

HTTP详解(3)-http1.0 和http1.1 区别 翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟HTTP1.0的差别。 长连接 Host域 带宽优化 消息传递...
  • xu_ya_fei
  • xu_ya_fei
  • 2015年02月10日 09:00
  • 1263

HTTP 1.0 四种常见的 POST 提交数据方式

转至:https://www.imququ.com/post/four-ways-to-post-data-in-http.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTI...
  • nogodoss
  • nogodoss
  • 2015年05月04日 10:16
  • 2448

nginx配置http为1.0到1.1,主要是为了长连接有效

对于HTTP代理,proxy_http_version指令应该设置为“1.1”,同时“Connection”头的值也应被清空。 upstream http_backend { serve...
  • gxl0805
  • gxl0805
  • 2014年04月21日 17:00
  • 2726

http 1.0 / 1.1 / 2.0的区别

http1.0 / 1.1 / 2.0的区别
  • zhglance
  • zhglance
  • 2017年07月26日 19:11
  • 859
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP 1.1与HTTP 1.0的比较
举报原因:
原因补充:

(最多只允许输入30个字)