Content-Type
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Content-Type
表示标头用于指示资源的原始媒体类型(在发送时应用任何内容编码之前)。
在响应中,Content-Type
标头向客户端提供返回内容的实际内容类型。例如,当浏览器执行 MIME 嗅探时,该标头的值可能会被忽略;将 X-Content-Type-Options
标头值设置为 nosniff
可防止这种行为。
在请求(例如 POST
或 PUT
)中,客户端会告诉服务器实际发送的数据类型。
标头类型 | 表示标头 |
---|---|
禁止修改的标头 | 否 |
列入 CORS 白名单的响应标头 | 是 |
列入 CORS 白名单的请求标头 |
是,但额外限制了值不能包含 CORS 不安全的请求标头字节:0x00-0x1F(除了 0x09(HT))、"():<>?@[\]{} 和 0x7F(DEL)。
解析值(忽略参数)的 MIME 类型也必须是 application/x-www-form-urlencoded 、multipart/form-data 或 text/plain 。
|
语法
http
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something
指令
media-type
-
资源或数据的 MIME 类型。
- charset
-
字符编码标准。不区分大小写,推荐使用小写。
- boundary
-
对于多部分实体,必须使用
boundary
指令。该指令由 1 至 70 个字符组成,这些字符选自一套已知能通过电子邮件网关的、非常健壮的字符集(并且不以空白字符结束)。它用于封装信息多个部分的边界。通常情况下,开头的边界前会加上两个破折号,而末尾边界的后面也会加上两个破折号。
示例
在 HTML 表单中使用 Content-Type
在 HTML 表单提交产生的 POST
请求中,请求的 Content-Type
属性由 <form>
元素上的 enctype
属性来指定。
html
<form action="/foo" method="post" enctype="multipart/form-data">
<input type="text" name="description" value="一些文本" />
<input type="file" name="myFile" />
<button type="submit">提交</button>
</form>
请求内容如下(此处省略了不太感兴趣的标头):
http
POST /foo HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575
-----------------------------974767299852498929531610575
Content-Disposition: form-data; name="description"
一些文本
-----------------------------974767299852498929531610575
Content-Disposition: form-data; name="myFile"; filename="foo.txt"
Content-Type: text/plain
(上传文件 foo.txt 的内容)
-----------------------------974767299852498929531610575--
规范
Specification |
---|
HTTP Semantics # status.206 |
HTTP Semantics # field.content-type |
浏览器兼容性
BCD tables only load in the browser
参见
Accept
Content-Disposition
206
Partial ContentX-Content-Type-Options