HTTP 请求行的基本结构
HTTP 请求行是 HTTP 请求的第一部分,由三个关键组件构成:请求方法(Method)、请求目标(URL)和协议版本(Version)。格式如下:
Method Request-URI HTTP-Version
例如:
GET /index.html HTTP/1.1
请求方法(Method)
HTTP 定义了多种请求方法,用于指定对资源的不同操作方式。常见方法包括:
- GET:请求获取指定资源,仅用于数据读取,无副作用。
- POST:向指定资源提交数据,可能导致服务器状态变化。
- PUT:替换或更新目标资源。
- DELETE:请求删除指定资源。
- HEAD:与 GET 类似,但只返回响应头,不返回实体主体。
- OPTIONS:返回服务器支持的 HTTP 方法。
请求目标(URL/URI)
请求目标标识了请求的资源位置,可以是绝对路径、相对路径或完整 URL。常见形式包括:
- 绝对路径 :如
/index.html,通常用于直接访问服务器资源。 - 完整 URL :如
http://example.com/index.html,常见于代理请求。 - 通配符 :如
*,用于 OPTIONS 方法,表示整个服务器。
协议版本(Version)
指定使用的 HTTP 协议版本,常见的有:
- HTTP/1.0:早期版本,每个请求需新建连接。
- HTTP/1.1:主流版本,支持持久连接和管道化。
- HTTP/2:二进制协议,多路复用,头部压缩。
示例解析
以 GET /api/data HTTP/1.1 为例:
GET是方法,表示获取资源。/api/data是目标路径,指向服务器上的资源。HTTP/1.1是协议版本,使用 HTTP 1.1 特性。
注意事项
- 请求行必须以回车换行(CRLF)结束。
- 方法名区分大小写,通常使用大写字母。
- URL 中的保留字符需百分比编码(如空格为
%20)。 - HTTP/1.1 要求指定
Host头部,即使 URL 包含主机名。