From 959085b62d7f0a9fc58de74c5df696dc8ec5491d Mon Sep 17 00:00:00 2001 From: Artyom Liou Date: Thu, 29 Apr 2021 23:26:46 +0800 Subject: web/http/headers/content-type (zh-TW translation) --- .../zh-tw/web/http/headers/content-type/index.html | 121 +++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 files/zh-tw/web/http/headers/content-type/index.html (limited to 'files/zh-tw') diff --git a/files/zh-tw/web/http/headers/content-type/index.html b/files/zh-tw/web/http/headers/content-type/index.html new file mode 100644 index 0000000000..a10fd0d34b --- /dev/null +++ b/files/zh-tw/web/http/headers/content-type/index.html @@ -0,0 +1,121 @@ +--- +title: Content-Type +slug: Web/HTTP/Headers/Content-Type +tags: + - Content-Type + - Entity header + - HTTP + - Reference + - header +--- +
{{HTTPSidebar}}
+ +

Content-Type 用來表示資源的 {{Glossary("MIME type","media type")}} 。

+ +

在 HTTP 回應中,Content-Type 表頭是用來表示本次 HTTP 事務回傳的內容類型。瀏覽器有時會自己推測內容類型(MIME sniffing),如果要阻止這個行為,請在回應中設定 {{HTTPHeader("X-Content-Type-Options")}} 標頭為 nosniff

+ +

在 HTTP 請求中(比如 {{HTTPMethod("POST")}} 或 {{HTTPMethod("PUT")}}),則是客戶端用來告訴伺服器自己傳的資料是什麼內容類型。

+ + + + + + + + + + + + + + + + + + + + +
Header type{{Glossary("Entity header")}}
{{Glossary("Forbidden header name")}}no
{{Glossary("CORS-safelisted response header")}}yes
{{Glossary("CORS-safelisted request header")}}yes, with the additional restriction that values can't contain a CORS-unsafe request header byte: 0x00-0x1F (except 0x09 (HT)), "():<>?@[\]{}, and 0x7F (DEL).
+ It also needs to have a MIME type of its parsed value (ignoring parameters) of either application/x-www-form-urlencoded, multipart/form-data, or text/plain.
+ +

語法

+ +
Content-Type: text/html; charset=UTF-8
+Content-Type: multipart/form-data; boundary=something
+
+ +

指令

+ +
+
media-type
+
資料的 內容類型(MIME type)
+
charset
+
編碼標準。
+
boundary
+
對於多段的資料必須要使用 boundary 指令,由 1 到 70 字的字元組成(這樣做很適合寄信),而且不能以空白結束。它會用來標誌資料的每一個段落。通常第一個段落的前面會加上兩個破折號(-),而最後一個段落後面也會加上兩個破折號。
+
+ +

範例

+ +

在 HTML 表單設定 Content-Type

+ +

你可以在 HTML {{HTMLElement("form")}} 的 enctype 屬性,設定表單送出後的 {{HTTPMethod("POST")}} 請求的 Content-Type

+ +
<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>
+
+ +

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--
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + +
SpecificationTitle
{{RFC("7233", "Content-Type in multipart", "4.1")}}Hypertext Transfer Protocol (HTTP/1.1): Range Requests
{{RFC("7231", "Content-Type", "3.1.1.5")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

Browser compatibility

+ +

{{Compat("http.headers.Content-Type")}}

+ +

See also

+ + -- cgit v1.2.3-54-g00ecf