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 可以防止這種行為。

在請求中(例如 POSTPUT),用戶端告訴伺服器實際發送的數據類型。

標頭類型 表示標頭
禁止修改的標頭
CORS 安全清單回應標頭
CORS 安全清單請求標頭 是,附加限制是值不能包含 CORS 不安全的請求標頭字節:0x00-0x1F(除了 0x09 (HT)),"():<>?@[\]{} 和 0x7F (DEL)。
值解析後的 MIME 類型(忽略參數)必須是 application/x-www-form-urlencodedmultipart/form-datatext/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

POST 請求中,來自 HTML 表單提交的 Content-Type<form> 元素上的 enctype 屬性指定。

html
<form action="/foo" 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>

請求看起來像這樣(省略了一些不太重要的標頭):

http
POST /foo HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575

-----------------------------974767299852498929531610575
Content-Disposition: form-data; name="description"

some text
-----------------------------974767299852498929531610575
Content-Disposition: form-data; name="myFile"; filename="foo.txt"
Content-Type: text/plain

(content of the uploaded file foo.txt)
-----------------------------974767299852498929531610575--

規範

Specification
HTTP Semantics
# status.206
HTTP Semantics
# field.content-type

瀏覽器相容性

BCD tables only load in the browser

參見