什么是HTTP报文?常见的HTTP报文字段有哪些?

HTTP报文是指HTTP请求报文和HTTP响应报文。它由请求/响应行、请求/响应头部、空行和请求/响应体组成。

常见的HTTP报文字段有:

  1. 请求/响应行:包含HTTP方法、请求URI、HTTP版本、状态码等。
  2. Host:指定所请求资源所在的服务器主机名和端口号。
  3. User-Agent:标识请求软件的应用类型、操作系统、软件开发商等信息。
  4. Content-Type:指定发送/接收的数据格式,如application/json等。
  5. Content-Length:指定发送/接收的数据体长度。
  6. Connection:控制不再转发给代理的响应信息等,如Keep-Alive等。
  7. Authorization:用于HTTP认证的授权信息,如Basic、Bearer等。
  8. Cookie:存储服务器发送到用户的浏览器并保存的小块数据。
  9. Location:用于重定向到新的URI。
  10. ETag:资源的唯一标识,用于缓存校验。
  11. Expires/Cache-Control:指定资源的过期时间/缓存机制。
  12. 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"}]