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=----」という指定は複数ファイルを同時送信する際にファイル境界を表す文字列が「----」であることを示している。
「Content-Type」の関連用語
「Content-Type」の関連リンク (外部サイト)
主なメディアタイプ
| タイプ | 説明 |
|---|---|
| text | テキスト(文字)データ |
| image | 静止画像データ |
| audio | 音声データ |
| video | 動画データ |
| font | フォントデータ |
| application | 他の分類に当てはまらない形式 |
| multipart | 複数の形式が混在するデータ |
| message | カプセル化されたメッセージ |
| model | 3Dモデルデータ |
| example | 例示用 |
| タイプ名/サブタイプ名 | 一般的な拡張子 | ファイル形式 |
|---|---|---|
| text/plain | .txt | プレーンテキスト |
| text/html | .html .htm | HTML文書 |
| text/xml | .xml | XML文書 |
| text/css | .css | CSSスタイルシート |
| text/javascript | .js | JavaScriptプログラム(廃止) |
| text/csv | .csv | CSVファイル |
| text/markdown | .md | Markdownドキュメント |
| image/gif | .gif | GIF画像 |
| image/png | .png | PNG画像 |
| image/jpeg | .jpg .jpeg | JPEG画像 |
| image/svg+xml | .svg | SVG画像 |
| image/bmp | .bmp | BMP画像 |
| image/tiff | .tif .tiff | TIFF画像 |
| image/vnd.microsoft.icon | .ico | Windowsアイコン |
| audio/mpeg | .mp1 .mp2 .mp3 | MPEG音声のみ |
| audio/MPA | .mp1 .mp2 .mp3 | MPEG音声のみ |
| audio/mp4 | .m4a | MP4コンテナの音声 |
| audio/aac | .aac | AAC音声 |
| audio/3gpp | .3gp | 3GP音声 |
| audio/3gpp2 | .3gp2 | 3GP2音声 |
| audio/ac3 | .ac3 | Dolby AC3音声 |
| audio/aptx | - | aptX音声 |
| audio/ogg | .ogg | Oggコンテナ音声 |
| video/H264 | .mp4 | H.264/MPEG-4 AVC動画 |
| video/MP2T | .ts .mts .m2t | MPEG-2トランスポートストリーム |
| video/AV1 | .mp4 .mkv | AV1動画 |
| video/ogg | .ogg | Oggコンテナ動画 |
| video/quicktime | .qt | QuickTime動画 |
| multipart/form-data | - | HTMLフォームからのPOST |
| multipart/alternative | - | テキストとHTMLを同梱 |
| multipart/encrypted | - | 暗号化されたデータ |
| multipart/multilingual | - | 多言語が混在するデータ |
| application/xml | .xml | XML文書 |
| application/xhtml+xml | .xhtml | XHTML文書 |
| application/javascript | .js | JavaScriptプログラム(現行) |
| application/json | .json | JSONデータ |
| application/pdf | PDF文書 | |
| application/gzip | .gz | gzip圧縮データ |
| application/zip | .zip | Zip圧縮データ |
| application/atom+xml | .atom | Atomフィード |
| application/rdf+xml | .rss .rdf .xml | RSSフィード |
| application/msword | .doc .docx | Microsoft Word文書 |
| application/vnd.ms-excel | .xls .xlsx | Microsoft Excelブック |
| application/vnd.ms-powerpoint | .ppt .pptx | Microsoft PowerPointプレゼンテーション |
| application/x-www-form-urlencoeded | - | URLエンコードされたPOSTデータ |
| application/octet-stream | - | 任意のバイト列(形式不明・未指定) |