HTTP报文是指HTTP请求报文和HTTP响应报文。它由请求/响应行、请求/响应头部、空行和请求/响应体组成。
常见的HTTP报文字段有:
- 请求/响应行:包含HTTP方法、请求URI、HTTP版本、状态码等。
- Host:指定所请求资源所在的服务器主机名和端口号。
- User-Agent:标识请求软件的应用类型、操作系统、软件开发商等信息。
- Content-Type:指定发送/接收的数据格式,如application/json等。
- Content-Length:指定发送/接收的数据体长度。
- Connection:控制不再转发给代理的响应信息等,如Keep-Alive等。
- Authorization:用于HTTP认证的授权信息,如Basic、Bearer等。
- Cookie:存储服务器发送到用户的浏览器并保存的小块数据。
- Location:用于重定向到新的URI。
- ETag:资源的唯一标识,用于缓存校验。
- Expires/Cache-Control:指定资源的过期时间/缓存机制。
- Date:报文产生的日期和时间。
代码示例:
请求报文:
GET /users HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Content-Type: application/json
Content-Length: 30
{"name": "John", "age": 30}
响应报文:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 100
Set-Cookie: session=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT
ETag: "10c1-4183e1ea83b84"
Date: Tue, 08 Jun 2021 10:18:14 GMT
[{"name": "John"}, {"name": "Mary"}]