MIMEについてわからなくなったら読む

メモ

  • MIME(Multipurpose Internet Mail Extension)
  • 名前からわかるように、メールの技術として導入。
  • 後発のHTTPではその仕組みを利用している(Wikipediaでは『援用』と言い回している)。

MIME の本質

MIME の基礎』より引用

データ型を示すフィールドの導入
既存の Content-Type: というフィールドを再定義して、さまざまなデータ型を指定できるようになりました。テキスト・データには文字コードを明示的に指定できるようになりました。
本文の再帰的な構造化
メールやマルチパートというデータ型を導入することで、複数のデータを格納したり、入れ子構造をとれるようにしました。
安全な符号方式の定義
配送システムが誤動作を起こさないような安全な符号方式を定義しました。
ヘッダの国際化
上記の符号方式を使って、ASCII 以外の文字コードをASCII へ符号化し、ヘッダに挿入できるようになりました。

コンテンツ・タイプのフォーマット

タイプ/サブタイプ[; パラメータ1=値1; パラメータ2=値2; ・・・]

  • パラメータは必要な場合のみ使う。text/plain の charset や multipart/mixed の boundary は本質的に必須のパラメータ。

タイプ定義

タイプは以下のものが定義されている。よくあるサブタイプも記載。

    1. text : 一般的なテキストファイルやHTMLファイル、リッチテキストなど
      • text/plain テキストファイル
      • text/html HTMLファイル
      • text/xml, text/css, text/javascript ・・・
    2. application : アプリケーションのデータファイル。ワープロ表計算ソフトのファイルなど
      • application/pdf PDFファイル
      • application/msword Wordドキュメント
      • application/gzip gzファイル
      • application/x-compress ZIP、LZHなど
    3. image : GIFやJPEGなどの画像ファイル
      • image/jpeg JPEGファイル
      • image/png PNGファイル
      • image/bmp, image/gif ・・・
    4. audio : WAVEやAUなどの音声ファイル
      • audio/mp3, audio/mpg, audio/mpeg MP3ファイル
      • audio/wav WAVEファイル
      • audio/mid, audio/midi MIDIファイル
    5. video : MPEGQuickTimeなどの動画ファイル
    6. model : 2Dや3Dグラフィックスのためのオブジェクト・データ。RFC2077で追加されたもの
    7. message : RFC822に準拠したメール・メッセージなど
    8. multipart : マルチパート型メッセージ
      • multipart/mixed 異なる内容のものを複数含む(本文と添付ファイルなど)
      • multipart/alternative 同一の内容を違う形式で記述(HTMLメールとテキストメールを同時送信した場合など)
      • multipart/form-data HTTPのフォームデータ
      • 上記が全てではない
      • multipart/mixed のなかにさらに multipart/mixed があるなどの入れ子構造(再帰性)を許容する(使うかどうかはともかく)。