Content-Type 【コンテンツタイプ】
HTTPはWebサーバとWebクライアント(Webブラウザなど)の間でデータの伝送を行なう通信規約(プロトコル)の一つで、通信の制御情報を前半部のHTTPヘッダに記述し、後半のHTTPボディが伝送内容の本体を表す。ヘッダは改行区切りのテキスト(文字)形式で「項目名: 値(改行)」という記法で設定を列挙する。
Content-Typeはヘッダで最も一般的に用いられる項目の一つで、ボディ部に積載したデータの種類や形式(メディアタイプ)を指定する。主にサーバがクライアントに送信するHTTPレスポンスの中で送信データの形式を伝えるために用いるが、クライアントがフォームなどから送信するPOSTデータの形式を知らせるのにも用いられる。
記載する値の体系として、電子メールのメッセージに記述したデータの種別を表す「メディアタイプ」(MIMEタイプ)がそのまま採用されている。これは「タイプ名/サブタイプ名」という形式で表され、文字、画像といったメディアの種類をタイプ名で、具体的な特定のデータ形式やファイル形式をサブタイプ名で表す。
例えば、プレーンテキストは「text/plain」、HTML文書は「text/html」、CSSスタイルシートは「text/css」、JavaScriptプログラムは「text/javascript」、JPEG画像は「image/jpeg」、GIF画像は「image/gif」、PNG画像は「image/png」、PDF文書は「application/pdf」でそれぞれ表される。
サブタイプ名とデータ形式の対応は、IANAが登録を受け付けてリストとして公開している。主要なファイル形式の多くが登録されているが、既存の登録名と重複しなければ独自形式のデータに私的なサブタイプ名を使用しても良い。また、形式が不明な場合や単なるバイト列である場合は「application/octet-stream」を用いる。
メディアタイプの他に「;」で区切って情報を付加することもできる。例えば、「Content-Type: text/html; charset=UTF-8」という指定はHTML文書の文字コードがUTF-8形式であることを、「Content-Type: multipart/form-data; boundary=----」という指定は複数ファイルを同時送信する際にファイル境界を表す文字列が「----」であることを示している。