HTTP请求通常包含以下几个主要部分:
-
请求行(Request Line):
- 包含请求方法(如 GET、POST、PUT、DELETE 等)、请求的目标 URI 和 HTTP 版本。例如:
GET /index.html HTTP/1.1
- 包含请求方法(如 GET、POST、PUT、DELETE 等)、请求的目标 URI 和 HTTP 版本。例如:
-
请求头部(Request Headers):
- 包含关于请求的附加信息,以键值对的形式出现。常见的请求头包括:
Host
:请求的主机名。User-Agent
:客户端软件的信息(浏览器类型、版本等)。Accept
:客户端能够接收的内容类型。Content-Type
:在 POST 或 PUT 请求中,表示请求体的内容类型。Authorization
:身份验证信息。- 其他自定义头部等。
- 包含关于请求的附加信息,以键值对的形式出现。常见的请求头包括:
-
空行:
- 表示请求头部结束的空行。
-
请求体(Request Body)(可选):
- 仅在某些请求方法(如 POST、PUT)中包含,包含需要发送给服务器的数据,如表单数据、JSON、XML等。请求体的内容通常会根据
Content-Type
进行解析。
- 仅在某些请求方法(如 POST、PUT)中包含,包含需要发送给服务器的数据,如表单数据、JSON、XML等。请求体的内容通常会根据
完整的 HTTP 请求示例如下:
POST /submit HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
name=John&age=30
在这个示例中,POST /submit HTTP/1.1
是请求行,后面的行是请求头,最后的空行后面的是请求体。