Content-Type 【コンテンツタイプ】

概要

Content-Type(コンテンツタイプ)とは、HTTPヘッダのフィールド(項目)の一つで、本体(ボディ)として送信するデータの種類や形式を相手方に伝達するためのもの。

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=----」という指定は複数ファイルを同時送信する際にファイル境界を表す文字列が「----」であることを示している。

(2022.2.17更新)

HTTPの用語一覧

主なメディアタイプ

タイプ説明
textテキスト(文字)データ
image静止画像データ
audio音声データ
video動画データ
fontフォントデータ
application他の分類に当てはまらない形式
multipart複数の形式が混在するデータ
messageカプセル化されたメッセージ
model3Dモデルデータ
example例示用

タイプ名/サブタイプ名一般的な拡張子ファイル形式
text/plain.txtプレーンテキスト
text/html.html .htmHTML文書
text/xml.xmlXML文書
text/css.cssCSSスタイルシート
text/javascript.jsJavaScriptプログラム(廃止)
text/csv.csvCSVファイル
text/markdown.mdMarkdownドキュメント
image/gif.gifGIF画像
image/png.pngPNG画像
image/jpeg.jpg .jpegJPEG画像
image/svg+xml.svgSVG画像
image/bmp.bmpBMP画像
image/tiff.tif .tiffTIFF画像
image/vnd.microsoft.icon.icoWindowsアイコン
audio/mpeg.mp1 .mp2 .mp3MPEG音声のみ
audio/MPA.mp1 .mp2 .mp3MPEG音声のみ
audio/mp4.m4aMP4コンテナの音声
audio/aac.aacAAC音声
audio/3gpp.3gp3GP音声
audio/3gpp2.3gp23GP2音声
audio/ac3.ac3Dolby AC3音声
audio/aptx-aptX音声
audio/ogg.oggOggコンテナ音声
video/H264.mp4H.264/MPEG-4 AVC動画
video/MP2T.ts .mts .m2tMPEG-2トランスポートストリーム
video/AV1.mp4 .mkvAV1動画
video/ogg.oggOggコンテナ動画
video/quicktime.qtQuickTime動画
multipart/form-data-HTMLフォームからのPOST
multipart/alternative-テキストとHTMLを同梱
multipart/encrypted-暗号化されたデータ
multipart/multilingual-多言語が混在するデータ
application/xml.xmlXML文書
application/xhtml+xml.xhtmlXHTML文書
application/javascript.jsJavaScriptプログラム(現行)
application/json.jsonJSONデータ
application/pdf.pdfPDF文書
application/gzip.gzgzip圧縮データ
application/zip.zipZip圧縮データ
application/atom+xml.atomAtomフィード
application/rdf+xml.rss .rdf .xmlRSSフィード
application/msword.doc .docxMicrosoft Word文書
application/vnd.ms-excel.xls .xlsxMicrosoft Excelブック
application/vnd.ms-powerpoint.ppt .pptxMicrosoft PowerPointプレゼンテーション
application/x-www-form-urlencoeded-URLエンコードされたPOSTデータ
application/octet-stream-任意のバイト列(形式不明・未指定)