`Content-Type` 是 HTTP 协议中的一个重要头部字段,用于指示资源的媒体类型(MIME 类型)。
一、作用
1. 客户端和服务器之间的通信
客户端在发送请求时,可以使用`Content-Type`头部字段告诉服务器请求体中的数据类型。
例如:如果客户端发送一个包含 JSON 数据的 POST 请求,它可以设置`Content-Type`为`application/json`,以便服务器知道如何解析请求体中的数据。
2. 服务器响应的标识
服务器在返回响应时,也会使用`Content-Type`头部字段告诉客户端响应体中的数据类型。这样客户端就可以根据这个信息来正确地处理响应数据。
例如:如果服务器返回一个 HTML 页面,它可以设置`Content-Type`为`text/html`。
二、常见的媒体类型
1. `text/plain`
表示纯文本内容,通常用于发送简单的文本消息或日志文件。
2. `text/html`
表示 HTML 文档,用于在浏览器中显示网页内容。
3. `application/json`
表示 JSON 格式的数据,常用于前后端分离的 Web 应用中进行数据交换。
4. `application/xml`
表示 XML 格式的数据,在一些传统的应用中可能会使用。
5. `image/jpeg`、`image/png`等
表示各种图像文件类型。
6. `audio/mpeg`、`video/mp4`等
表示音频和视频文件类型。
三、设置方法
1. 在客户端请求中设置
在使用 HTTP 客户端库发送请求时,可以设置`Content-Type`头部字段。例如,在使用`fetch` API 发送请求时,可以这样设置:
javascript
fetch("/api/endpoint", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
/* your data */
}),
});
- 在这个例子中,设置了`Content-Type`为`application/json`,表示请求体中的数据是 JSON 格式。
2. 在服务器响应中设置
在服务器端,可以根据响应数据的类型设置`Content-Type`头部字段。例如,在使用 Express.js 框架返回一个 HTML 页面时,可以这样设置:
javascript
res.send("<html><body>Hello, world!</body></html>");
res.setHeader("Content-Type", "text/html");