Content-Type

Content-Type エンティティヘッダーは、リソースのメディア種別を示すために使用します。

レスポンスにおいては、 Content-Type ヘッダーはクライアントに返されたコンテンツが実際にはどのような種類のものであるかを伝えます。場合によってはブラウザーは MIME を推定し、このヘッダーの値に従わないこともあります。 X-Content-Type-Optionsnosniff に設定すると、この振舞いを防ぐことができます。

要求においては (POST または PUT などで)、クライアントがサーバーにどのような種類のデータが実際に送られたかを伝えます。

ヘッダー種別 エンティティヘッダー
禁止ヘッダー名 いいえ
CORS セーフリストレスポンスヘッダー はい
CORS セーフリストリクエストヘッダー はい。 CORS 危険リクエストヘッダーバイト: "():<>?@[\]{}, Delete, Tab, 制御文字の 0x00 から 0x19 までを値に含むことができないという制限付きです。
また、 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文字で構成され、ホワイトスペースで終了しないものです。これはメッセージの複数パートの境界を囲むために使用します。ふつう、ヘッダーの境界は2本のダッシュで始まり、最後の境界には最後にも2本のダッシュが入ります。

HTML フォームにおける Content-Type

HTML フォームを送信した結果としての POST 要求において、 Content-Type<form> 要素の enctype 属性で指定します。

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

仕様書

仕様書 題名
RFC 7233, セクション 4.1: Content-Type in multipart Hypertext Transfer Protocol (HTTP/1.1): Range Requests
RFC 7231, セクション 3.1.1.5: Content-Type Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

ブラウザーの互換性

BCD tables only load in the browser

関連情報