title | slug | l10n | ||
---|---|---|---|---|
Content-Type |
Web/HTTP/Headers/Content-Type |
|
{{HTTPSidebar}}
Content-Type
表示标头用于指示资源的原始{{Glossary("MIME type","媒体类型")}}(在发送时应用任何内容编码之前)。
在响应中,Content-Type
标头向客户端提供返回内容的实际内容类型。例如,当浏览器执行 MIME 嗅探时,该标头的值可能会被忽略;将 {{HTTPHeader("X-Content-Type-Options")}} 标头值设置为 nosniff
可防止这种行为。
在请求(例如 {{HTTPMethod("POST")}} 或 {{HTTPMethod("PUT")}})中,客户端会告诉服务器实际发送的数据类型。
标头类型 | {{Glossary("Representation header", "表示标头")}} |
---|---|
{{Glossary("Forbidden header name", "禁止修改的标头")}} | 否 |
{{Glossary("CORS-safelisted response header", "列入 CORS 白名单的响应标头")}} | 是 |
{{Glossary("CORS-safelisted request header", "列入 CORS 白名单的请求标头")}} |
是,但额外限制了值不能包含 CORS 不安全的请求标头字节:0x00-0x1F(除了 0x09(HT))、"():<>?@[\]{} 和 0x7F(DEL)。
解析值(忽略参数)的 MIME 类型也必须是 application/x-www-form-urlencoded 、multipart/form-data 或 text/plain 。
|
Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something
media-type
- : 资源或数据的 MIME 类型。
- charset
- : 字符编码标准。不区分大小写,推荐使用小写。
- boundary
- : 对于多部分实体,必须使用
boundary
指令。该指令由 1 至 70 个字符组成,这些字符选自一套已知能通过电子邮件网关的、非常健壮的字符集(并且不以空白字符结束)。它用于封装信息多个部分的边界。通常情况下,开头的边界前会加上两个破折号,而末尾边界的后面也会加上两个破折号。
- : 对于多部分实体,必须使用
在 HTML 表单提交产生的 {{HTTPMethod("POST")}} 请求中,请求的 Content-Type
属性由 {{HTMLElement("form")}} 元素上的 enctype
属性来指定。
<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>
请求内容如下(此处省略了不太感兴趣的标头):
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--
{{Specifications}}
{{Compat}}
- {{HTTPHeader("Accept")}}
- {{HTTPHeader("Content-Disposition")}}
- {{HTTPStatus("206")}} Partial Content
- {{HTTPHeader("X-Content-Type-Options")}}