http报文内容

发布于:2025-09-04 ⋅ 阅读:(22) ⋅ 点赞:(0)

HTTP报文是客户端与服务器之间通信的基本单位,分为请求报文响应报文两种类型。其核心结构由三部分组成:起始行(或状态行)头部字段消息正文(可选)。以下是具体内容解析:


一、请求报文(Request Message)

请求报文由客户端发送至服务器,用于请求资源或执行操作。其结构如下:

1. 请求行(Request Line)
  • 组成方法(Method) + 请求目标(URI) + HTTP版本
    • 方法:如 GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等。
    • 请求目标:资源的路径(如 /index.html)或完整URL(代理场景)。
    • HTTP版本:如 HTTP/1.1HTTP/2
  • 示例
    GET /api/users HTTP/1.1
2. 请求头部字段(Headers)
  • 作用:传递附加信息,如客户端类型、认证信息、内容类型等。
  • 常见字段
    • Host:目标服务器域名(HTTP/1.1必需)。
    • User-Agent:客户端标识(如浏览器类型)。
    • Accept:客户端可接受的响应类型(如 text/html)。
    • Content-Type:请求体数据类型(如 application/json)。
    • Authorization:认证信息(如 Bearer token)。
  • 其他通用字段:如 Connection(连接管理)、Cache-Control(缓存策略)。
3. 请求体(Body,可选)
  • 存在条件:仅在 POSTPUT 等方法中使用。
  • 数据格式:如表单数据(application/x-www-form-urlencoded)、JSON(application/json)等。
  • 示例
    username=admin&password=123456

二、响应报文(Response Message)

响应报文由服务器返回给客户端,用于反馈请求处理结果。其结构如下:

1. 状态行(Status Line)
  • 组成HTTP版本 + 状态码 + 原因短语
    • 状态码:3位数字,表示处理结果(如 200 成功、404 未找到)。
      • 分类:1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)、5xx(服务器错误)。
    • 原因短语:状态码的文字描述(如 OKNot Found)。
  • 示例
    HTTP/1.1 200 OK
2. 响应头部字段(Headers)
  • 作用:描述响应的元信息,如内容类型、缓存策略等。
  • 常见字段
    • Server:服务器软件信息(如 Apache/2.4.1)。
    • Content-Type:响应体类型(如 text/html)。
    • Content-Length:响应体字节数。
    • Set-Cookie:设置客户端Cookie。
  • 其他通用字段:如 Date(响应时间)、Cache-Control(缓存控制)。
3. 响应体(Body,可选)
  • 内容:实际返回的数据,如HTML页面、JSON、图片等。
  • 示例

<html><body>Hello World</body></html>

三、通用结构与高级特性

  1. 空行分隔:头部与正文之间必须有一个空行(\r\n)。
  2. 分块传输编码:通过 Transfer-Encoding: chunked 分割大文件传输。
  3. 持久连接:HTTP/1.1 默认启用 Connection: keep-alive,复用TCP连接。
  4. 内容协商:通过 AcceptAccept-Language 等字段协商资源格式。

四、完整示例

请求报文示例:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
响应报文示例:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234

<html>Hello World</html>

网站公告

今日签到

点亮在社区的每一天
去签到