一个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缓存等机制相关的请求头和响应头
分享到:
相关推荐
HTTP 1.0 和 HTTP 1.1 的差异 HTTP(HyperText Transfer Protocol)是一种应用层协议,用于数据交换过程和数据本身的格式。它是 TCP/IP 中的一个应用协议,主要有两个版本:HTTP 1.0 和 HTTP 1.1。 HTTP 1.0 的...
这个“hbase-1.0.1.1-bin.tar.gz.zip”文件是HBase的1.0.1.1版本的二进制发行版,包含了运行和管理HBase所需的所有文件。以下将详细介绍HBase的关键特性、架构以及如何使用这个压缩包进行安装和配置。 1. **HBase...
《磁水键鼠同步器1.0.1.1:实现高效操作的创新技术解析》 在当前数字化时代,电脑用户对于效率与便捷性的追求从未止步。"磁水键鼠同步器1.0.1.1"便是一款旨在提升工作效率、简化多设备操作的创新软件工具。该软件的...
标题 "DSAPI_1.0.1.1" 暗示着这是一个软件组件的特定版本,DSAPI代表“Data Service Application Programming Interface”。这通常是一个用于.NET Framework的库,允许开发者通过一组预先定义的接口来访问和操作数据...
标题提及的“TLS1.0、1.1、1.2、1.3”指的是安全传输层协议(Transport Layer Security)的不同版本。TLS是互联网上广泛使用的安全协议,它确保了数据在客户端和服务器之间的加密传输,从而保护用户的隐私和信息安全...
**UVC 1.0/1.1/1.5协议详解** USB Video Class (UVC) 是一种标准,用于定义USB设备上的视频捕获功能,使得计算机可以通过USB接口与各种视频源(如网络摄像头、摄像机等)进行通信。UVC 1.0、1.1和1.5是这一标准的...
《LanMsg1.0.1.1:C#实现的IM聊天软件解析》 LanMsg1.0.1.1是一款基于C#编程语言开发的即时通讯(IM)软件,它集成了QQ和MSN的功能特性,为用户提供了一种全新的沟通体验。这款软件的核心亮点在于其对GIF动画表情的...
### HTTP 1.1与HTTP 1.0的主要区别 #### 持久连接(Persistent Connections) - **HTTP 1.0**:默认情况下,HTTP 1.0使用非持久连接,即每次请求都需要建立一个新的TCP连接。这种设计虽然简单,但在实际应用中导致...
在这个“hbase-1.0.1.1-bin.tar.gz”压缩包中,包含了运行和管理HBase所需的所有文件。 1. **HBase概述**: - **列族式存储**:HBase不同于传统的关系型数据库,它按照列族存储数据,每个列族包含一系列相关的列,...
UPnP 1.0 和 1.1 是该协议的两个早期版本,它们为设备自动发现、控制和通信提供了规范。 1. **UPnP基本概念**: - **自动发现**:UPnP设备在网络中可以通过SSDP(简单服务发现协议)自我宣告,其他设备可以通过...
USB UVC(Universal Video Class)协议是USB设备类定义的一部分,用于支持视频设备与主机之间的通信。这个协议标准由USB Implementers Forum (USB-IF)制定,旨在简化视频捕获设备的设计,如网络摄像头、数码相机等。...
USB 1.0和1.1是通用串行总线(Universal Serial Bus)早期的两个版本,它们在个人计算机和外设之间的连接中扮演了重要角色。这些协议为设备提供了标准化的数据传输方式,使得硬件厂商能够开发兼容各种操作系统的产品...
1.0至1.1版本的源码升级主要涵盖了框架的优化、新功能的添加以及部分bug的修复。 一、Spring Boot基础 Spring Boot是Spring框架的一个扩展,它简化了Spring应用的初始搭建以及配置过程。Jeecg-Boot基于Spring Boot...
这意味着1.1版本的设备和软件应当能够与遵循1.0版本的系统协同工作。 "Specification"这个文件可能是ASAM XCP 1.0或1.1版本的详细规范文档,包含协议的所有技术细节、命令定义、错误代码、实现建议等内容。对于...
MSPrinterInstall-V1.0.1.1作为一款打印机SDK,其主要目标是简化开发者与特定品牌或型号打印机的通信过程。 二、API接口 API是SDK的核心部分,它定义了开发者可以调用的各种函数和方法。打印机SDK中的API通常包括...
标题中的"PyPI 官网下载 | grailsort-1.0.1.1-cp39-cp39-win_amd64.whl"揭示了我们正在处理的是一个通过Python包索引(PyPI)官方渠道下载的软件包。PyPI是Python社区广泛使用的仓库,用于发布和分享Python模块和库...
### PCIE1.0 1.1 2.0 数据一致性分析方法 #### 概述 随着计算机技术的发展,PCI-Express(PCIE)作为一种重要的高速串行总线标准,被广泛应用于各种设备之间,包括芯片与芯片之间、系统与插卡之间、系统与系统之间...
《中兴无线上网卡管理软件PCP902M2 V1.0.1.1B05详解》 中兴无线上网卡管理软件是中兴通讯为旗下无线上网卡产品精心打造的一款专用管理工具,其版本号为PCP902M2 V1.0.1.1B05,主要功能在于帮助用户更好地管理和优化...