API请求报文包含请求行(方法+URL)、Headers及Body,用于客户端向服务端发起资源
API 请求报文详解
请求行(Request Line)
组成部分 | 示例 | 说明 |
---|---|---|
HTTP 方法 | GET | 表示请求操作类型(如获取资源) |
请求 URL | /api/v1/users | 目标资源的路径 |
HTTP 版本 | HTTP/1.1 | 协议版本号 |
常见 HTTP 方法对比表
方法 | 功能 | 适用场景 |
---|---|---|
GET | 获取资源 | 查询数据(无请求体) |
POST | 创建资源 | 提交表单/数据 |
PUT | 更新资源 | 覆盖式修改数据 |
DELETE | 删除资源 | 移除指定数据 |
请求头(Request Headers)
头部字段 | 示例值 | 作用 |
---|---|---|
Host | api.example.com | 指定服务器域名 |
User-Agent | Mozilla/5.0 | 客户端环境信息 |
Accept | application/json | 支持的响应格式 |
Content-Type | application/json | 请求体数据格式 |
Authorization | Bearer token123 | 身份认证凭证 |
Cookie | sessionid=abc | 客户端存储的会话信息 |
关键头部字段说明
字段 | 必选性 | 使用场景 |
---|---|---|
Content-Length | POST/PUT 必选 | 标明请求体长度 |
Cache-Control | 可选 | 控制缓存行为(如no-cache ) |
请求体(Request Body)
数据格式
格式类型 | 适用场景 | 示例结构 |
---|---|---|
JSON | RESTful API 主流格式 | {"name":"John","age":30} |
XML | 传统 Web 服务 | <user><name>John</name></user> |
Form-data | 文件上传/表单提交 | name=John&file=@image.png |
编码规范
- URL 编码:空格转为
%20
,特殊字符加前缀 - Base64 编码:二进制数据转文本(如图片传输)
- JSON 序列化:对象转字符串时需注意转义符
问题与解答
Q1:为什么 POST 请求需要 Content-Type
头?
A:服务器需通过该头部解析请求体格式。
application/json
:按 JSON 解析数据multipart/form-data
:处理文件上传- 未声明可能导致解析错误或默认处理异常
Q2:GET 请求能否携带请求体?
A:理论上 HTTP 协议允许,但实际存在限制:
- 多数服务器忽略 GET 请求体
- URL 长度受限(约 2048 字符)
- 语义冲突:GET 本意为安全查询,带体违反原则
推荐做法:将参数拼接在 URL 中(?key=value
到此,以上就是小编对于“api 请求报文”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复