学科分类
目录
Java Web

HTTP1.0和HTTP1.1

HTTP协议自诞生以来,先后经历了很多版本,其中,最早的版本是HTTP0.9,它与1990年提出。后来,为了进一步完善HTTP协议,先后在1996年提出了版本1.0,在1997年提出了版本1.1。由于HTTP0.9版本已经过时,这里不作过多讲解。接下来,只针对HTTP1.0和HTTP1.1进行详细地讲解。

1、HTTP1.0

基于HTTP1.0协议的客户端与服务器在交互过程中需要经过建立连接、发送请求信息、回送响应信息、关闭连接四个步骤,具体交互过程如图1所示。

img

图1 HTTP/1.0的交互过程

从图1中可以看出,客户端与服务器建立连接后,每次只能处理一个HTTP请求。对于内容丰富的网页来说,这样的通信方式明显有缺陷。例如,下面的一段HTML代码:

<html>
    <body>
        <img src="/image01.jpg">
        <img src="/image02.jpg ">
        <img src="/image03.jpg ">
    </body>
</html>

上面的HTML文档中包含了三个<img>标记,由于<img>标记的src属性指明的是图片的URL地址,因此,当客户端访问这些图片时,还需要发送三次请求,并且每次请求都需要与服务器重新建立连接。如此一来,必然导致客户端与服务器端交互耗时,影响网页的访问速度。

2、HTTP1.1

为了克服上述HTTP1.0的缺陷,HTTP1.1版本应运而生,它支持持久连接,也就是说在一个TCP连接上可以传送多个HTTP请求和响应,从而减少了建立和关闭连接的消耗和延时。基于HTTP1.1的客户端和服务器端的交互过程,如图2所示。

img

图2 HTTP1.1协议通信原理

从图2中可以看出,当客户端与服务器端建立连接后,客户端可以向服务器端发送多个请求,并且在发送下个请求时,无需等待上次请求的返回结果。但服务器必须按照接受客户端请求的先后顺序依次返回响应结果,以保证客户端能够区分出每次请求的响应内容。由此可见,HTTP1.1不仅继承了HTTP1.0的优点,而且有效解决了HTTP1.0的性能问题,显著地减少浏览器与服务器交互所需要的时间。

点击此处
隐藏目录