Content-Type
Content-Type
实体头用于指示所述媒体类型的资源的。
作为响应,Content-Type
标题告诉客户实际返回的内容的内容类型。浏览器在某些情况下会执行 MIME 嗅探,并不一定会遵循此标头的值; 为了防止这种行为,X-Content-Type-Options
可以将标题设置为nosniff
。
在请求(例如POST
或PUT
)中,客户端通知服务器实际发送了什么类型的数据。
Header type | Entity header |
---|---|
Forbidden header name | no |
CORS-safelisted response-header | yes |
语法
Content-Type: text/html; charset=utf-8Content-Type: multipart/form-data; boundary=something
指令
media-type
资源的 MIME 类型或 data.charset 字符编码标准。边界对于多部分实体,boundary
指令是必需的,它由1到70个字符组成,这些字符通过电子邮件网关已知非常强大,并且不以空格结尾。它用于封装消息多个部分的边界。
例子
Content-Type
在 HTML 表单中
在POST
来自 HTML 表单提交Content-Type
的请求中,请求的内容由元素enctype
上的属性指定<form>
。
<form action="/" method="post" enctype="multipart/form-data"> <input type="text" name="description" value="some text"> <input type="file" name="myFile"> <button type="submit">Submit</button> </form>
这个请求看起来像这样(这里省略了一些有趣的标题):
POST /foo HTTP/1.1Content-Length: 68137Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575---------------------------974767299852498929531610575Content-Disposition: form-data; name="description" some text---------------------------974767299852498929531610575Content-Disposition: form-data; name="myFile"; filename="foo.txt" Content-Type: text/plain (content of the uploaded file foo.txt)---------------------------974767299852498929531610575
规范
Specification | Title |
---|---|
RFC 7233, section 4.1: Content-Type in multipart | Hypertext Transfer Protocol (HTTP/1.1): Range Requests |
RFC 7231, section 3.1.1.5: Content-Type | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |