HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式
和超媒体信息系统的应用层协议。HTTP 是万维网(WWW)的数据通信的基础,设计
之初是为了提供一种发布和接收 HTML 页面的方法。然而,HTTP/1.1 之后,HTTP 的
功能被扩展,支持了任意类型的数据对象,包括图片、视频、音频、软件等。
HTTP 工作在客户端-服务器架构上,客户端(通常是浏览器)通过发送 HTTP 请求消
息到服务器,服务器则通过发送 HTTP 响应消息来响应这些请求。HTTP 请求和响应消
息由起始行(start line)、头部(header)字段和消息体(body)三个部分组成。
HTTP 的主要特点包括:
1. 简单快速:客户端向服务器请求服务时,只需传送请求方法和路径。请求方法常用的
有 GET、POST。每种方法规定了客户端与服务器联系的类型不同。由于 HTTP 协议简
单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
2. 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标
记。
3. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,
并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间,并且可以提高
效率。
4. 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺
少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接
传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP 的版本:
� HTTP/0.9:这是 HTTP 的第一个版本,它只支持 GET 方法,不支持头部信息。
� HTTP/1.0:增加了 HEAD、POST 等请求方法,支持长连接(Persistent Connection),
但默认还是使用非持久连接。请求和响应消息都支持头信息。
� HTTP/1.1:默认使用持久连接,支持管道化(pipelining)技术,通过在一个 TCP 连
接上发送多个请求来减少延迟。增加了更多的缓存控制策略,以及对认证、状态管理
和范围请求的支持。
� HTTP/2:引入了头部压缩(Header Compression)和服务器推送(Server Push)等
特性,显著提高了性能。HTTP/2 使用二进制格式传输数据,而不是文本。
� HTTP/3:基于 QUIC 协议,旨在进一步减少延迟并提高安全性。QUIC 是一种基于
UDP 的协议,它集成了 TLS 加密和 HTTP/2 的许多特性。