定义

HTTP/1.1 (Hypertext Transfer Protocol 1.1) 是一种应用层协议,是 HTTP 协议的第二个主要版本。它在 HTTP/1.0 的基础上进行了改进,引入了许多新的特性,例如持久连接、管道化、分块传输和内容协商等,提高了 Web 应用的性能和效率。

核心特点

  • 持久连接 (Persistent Connection): 允许在同一个 TCP 连接上发送多个 HTTP 请求和响应,减少了 TCP 连接的建立和关闭次数,提高了性能。
  • 管道化 (Pipelining): 允许在同一个 TCP 连接上同时发送多个 HTTP 请求,而无需等待前一个请求的响应,进一步提高了性能。
  • 分块传输 (Chunked Transfer): 允许将 HTTP 响应分成多个块进行传输,而无需在发送响应之前知道响应的总长度,提高了灵活性。
  • 内容协商 (Content Negotiation): 允许客户端和服务器之间协商使用哪种内容类型,例如文本、图片、视频等,提高了用户体验。
  • Host 头部: 强制要求客户端在 HTTP 请求中包含 Host 头部,用于指定服务器的域名,支持虚拟主机。

应用

  • Web 浏览器: Web 浏览器使用 HTTP/1.1 协议与 Web 服务器进行通信,获取网页内容。
  • Web 服务器: Web 服务器使用 HTTP/1.1 协议与 Web 浏览器进行通信,提供网页内容。
  • API: 许多 API 使用 HTTP/1.1 协议进行数据传输。

优缺点

  • 优点: - 提高了性能和效率。 - 支持虚拟主机。 - 提高了灵活性。
  • 缺点: - 头部冗余,每个 HTTP 请求和响应都包含大量的头部信息。 - 队头阻塞 (Head-of-Line Blocking),如果一个 HTTP 请求的响应被阻塞,后续的 HTTP 请求也会被阻塞。

相关概念

  • HTTP~1.0: HTTP 协议的第一个主要版本。
  • HTTP~2: HTTP 协议的第三个主要版本,在 HTTP/1.1 的基础上进行了进一步的改进,例如多路复用和头部压缩等。
  • TCP: 一种传输层协议,用于在客户端和服务器之间建立可靠的连接。

案例

  • Web 浏览器访问网页: Web 浏览器使用 HTTP/1.1 协议与 Web 服务器进行通信,获取网页内容。
  • API 获取数据: API 使用 HTTP/1.1 协议进行数据传输。

问答卡片

  • Q1:HTTP/1.1 和 HTTP/1.0 有什么区别?
  • A:HTTP/1.1 在 HTTP/1.0 的基础上进行了改进,引入了持久连接、管道化、分块传输和内容协商等新的特性,提高了 Web 应用的性能和效率。
  • Q2:HTTP/1.1 存在哪些问题?
  • A:HTTP/1.1 存在头部冗余和队头阻塞等问题。

参考资料