diff options
Diffstat (limited to 'files/zh-tw/web/http')
-rw-r--r-- | files/zh-tw/web/http/headers/content-type/index.html | 121 |
1 files changed, 121 insertions, 0 deletions
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 +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Content-Type</code></strong> 用來表示資源的 {{Glossary("MIME type","media type")}} 。</p> + +<p>在 HTTP 回應中,<code>Content-Type</code> 表頭是用來表示本次 HTTP 事務回傳的內容類型。瀏覽器有時會自己推測內容類型(MIME sniffing),如果要阻止這個行為,請在回應中設定 {{HTTPHeader("X-Content-Type-Options")}} 標頭為 <code>nosniff</code>。</p> + +<p>在 HTTP 請求中(比如 {{HTTPMethod("POST")}} 或 {{HTTPMethod("PUT")}}),則是客戶端用來告訴伺服器自己傳的資料是什麼內容類型。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Entity header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header")}}</th> + <td>yes</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted request header")}}</th> + <td>yes, with the additional restriction that values can't contain a <em>CORS-unsafe request header byte</em>: 0x00-0x1F (except 0x09 (HT)), <code>"():<>?@[\]{}</code>, and 0x7F (DEL).<br> + It also needs to have a MIME type of its parsed value (ignoring parameters) of either <code>application/x-www-form-urlencoded</code>, <code>multipart/form-data</code>, or <code>text/plain</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax">語法</h2> + +<pre class="brush: html">Content-Type: text/html; charset=UTF-8 +Content-Type: multipart/form-data; boundary=something +</pre> + +<h2 id="Directives">指令</h2> + +<dl> + <dt><code>media-type</code></dt> + <dd>資料的 <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">內容類型(MIME type)</a></dd> + <dt>charset</dt> + <dd>編碼標準。</dd> + <dt>boundary</dt> + <dd>對於多段的資料必須要使用 <code>boundary</code> 指令,由 1 到 70 字的字元組成(這樣做很適合寄信),而且不能以空白結束。它會用來標誌資料的每一個段落。通常第一個段落的前面會加上兩個破折號(-),而最後一個段落後面也會加上兩個破折號。</dd> +</dl> + +<h2 id="Examples">範例</h2> + +<h3 id="Content-Type_in_HTML_forms">在 HTML 表單設定 <code>Content-Type</code></h3> + +<p>你可以在 HTML {{HTMLElement("form")}} 的 <code>enctype</code> 屬性,設定表單送出後的 {{HTTPMethod("POST")}} 請求的 <code>Content-Type</code> 。</p> + +<pre class="brush: html"><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> +</pre> + +<p>HTTP 請求大概長這樣(省略了一些不重要的標頭):</p> + +<pre>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-- +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7233", "Content-Type in multipart", "4.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + <tr> + <td>{{RFC("7231", "Content-Type", "3.1.1.5")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{Compat("http.headers.Content-Type")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{HTTPHeader("Accept")}}</li> + <li>{{HTTPHeader("Content-Disposition")}}</li> + <li>{{HTTPStatus("206")}} Partial Content</li> + <li>{{HTTPHeader("X-Content-Type-Options")}}</li> +</ul> |