HTTP/1.0 - HTTP/1.1

HTTP 旨在允许中间网络元素改进或启用客户端和服务器之间的通信。在 Internet 协议套件框架内设计的 HTTP 协议。它的定义假定了一个底层和可靠的传输层协议。

HTTP

超文本传输​​协议 (HTTP) 是分布式、协作、超媒体信息系统的应用协议。HTTP 是一种无状态协议。简而言之,这意味着每个请求都需要包含服务器为该请求提供服务所需的尽可能多的详细信息,而服务器不必存储来自先前请求的大量信息和元数据。HTTP 是万维网数据通信的基础,其中超文本文档包括指向用户可以轻松访问的其他资源的超链接,例如通过鼠标点击或点击屏幕。开发 HTTP 是为了促进超文本和万维网。

HTTP/0.9

HTTP 协议的第一个版本只有一个方法,即 GET,它会从服务器请求页面。在此 Prortocol 中,连接在单个请求/响应对之后关闭。

HTTP/1.0

HTTP 工作组希望通过扩展操作、扩展协商、更丰富的元信息来扩展协议,并与安全协议绑定,该协议通过添加额外的方法和标头字段变得更加高效。RFC 1945于 1996 年正式引入并认可了 HTTP V1.0。

HTTP/1.0 为每个资源请求发送单独的连接到同一服务器,并且在单个请求/响应对后关闭连接。在 HTTP 1.0 下,除非包含 keepalive 标头,否则连接不被视为持久连接,尽管没有关于 keepalive 如何操作的官方规范。连接保持继续,直到客户端或服务器决定对话结束,其中一个断开连接。

HTTP/1.1

RFC 2068中 定义的 HTTP/1.1 标准于 1997 年 1 月正式发布。HTTP/1.1 是原始 HTTP (HTTP/1.0) 的修订版。HTTP/1.1 可以在页面交付后多次重用连接来下载图像、脚本、样式表等。因此,HTTP/1.1 通信的延迟更少,因为 TCP 连接的建立会带来相当大的开销。

在 HTTP/1.1 中引入了一种保持活动机制,其中一个连接可以重复用于多个请求。这种持久连接明显减少了请求延迟,因为客户端不需要在发送第一个请求后重新协商 TCP 3-Way-Handshake 连接。另一个积极的副作用是,通常,由于 TCP 的慢启动机制,连接会随着时间的推移而变得更快。

在 HTTP 1.1 中,除非另有声明,否则所有连接都被视为持久连接。HTTP 持久连接不使用单独的 keepalive 消息,它们只允许多个请求使用单个连接。

该协议的 1.1 版本还对 HTTP/1.0 进行了带宽优化改进。

例如,HTTP/1.1 引入了分块传输编码,以允许持久连接上的内容流式传输而不是缓冲。HTTP 流水线进一步减少了延迟时间,允许客户端在等待每个响应之前发送多个请求。该协议的另一个补充是字节服务,其中服务器仅传输客户端明确请求的资源的一部分。