常见的HTTP请求响应报文头包括:
❑Content-Type:指定响应主体的媒体类型(如text/HTML)。
❑Accept:指定客户端接收的响应主体类型(如text/HTML)。
MIME 类型的一般写法:<主类型>/<子类型>。
像我们刚提到的 text/html,text 是主类型,表示人直接读得懂的纯文本;html 是子类型,告诉浏览器这是 HTML 语法的文本。
同理,如 application/xml 也分两段:
| 部分 | 含义 |
|---|---|
| application(主类型) | 给“应用程序”处理的数据——通常不是直接给人阅读,而是给程序解析、计算、存储用的 |
| xml(子类型) | 具体格式是 XML 标记语言 |
所以 application/xml 表示:“这段数据是一份 XML 文档,预期供程序(而非直接面向人)解析使用。”
这二者区别如下:
1. 工作时机不同
-
Content-Type:报文已经带着实体数据,必须明确告诉对方“这段字节如何解析”。 -
Accept:在发送实体之前,客户端先告诉服务器“我偏好哪些格式”,服务器再决定用哪种格式生成响应。
2. 谁来设置
请求
-
如果请求 有 请求体(例如 POST 上传 JSON),客户端既会在头里放
Content-Type: application/json Accept:application/json
响应
-
服务器查看
Accept后,选择最合适的格式生成实体,并在响应头里声明Content-Type: application/json
注意:响应头没有Accept参数
3. 含义侧重点
| 字段 | 侧重 实体本身 | 侧重 协商偏好 |
|---|---|---|
Content-Type | ✅ | ❌ |
Accept | ❌ | ✅ |
4. 典型流程示意
sequenceDiagram
Client->>Server: GET /api/user\nAccept: application/json
note right of Server: 查看 Accept\n决定返回 JSON
Server-->>Client: 200 OK\nContent-Type: application/json\n{ "id": 1, ... }
5. 口诀
“Content-Type 说明我是谁,Accept 告诉你我想要谁。”
-
Content-Type:描述已存在的实体——“我递给你的这份文件格式是 X”。 -
Accept:表达未来的期望——“请尽量回我 X(如果没有就退而求其次)”。
397

被折叠的 条评论
为什么被折叠?



