スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MIME (マイム)

フルスペル:Multipurpose Internet Mail Extension
意味:多目的インターネットメール拡張‎

規格上US-ASCIIのテキストしか使用できないインターネットの電子メールでさまざまなフォーマット(書式)を 扱えるようにする規格である。 通常はMIME(マイム)と略される。RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289[1], RFC 2049 で 規定されている。

HTTPにおけるデータの伝送に関しても、MIMEの枠組みが援用されている。


MIMEで導入されたヘッダ


MIME-Version

現在は1.0のみが規定されている。

Mime-Version: 1.0

Content-Type

メッセージ中のデータのタイプを指定

Content-Type: type/subtype; parameter

typeには、"text"(テキスト), "image"(画像), "audio"(音声), "video"(動画), "application"(アプリケーションプログラム固有のフォーマット)などを指定して、 データそのものの型を指定できる他、"message", "multipart"を指定することで、 1つのMIMEメッセージの中にさらに別のMIMEメッセージを指定することもできる。
subtypeには、typeの詳細な形式を指定する。以下のようなものがよく使われる。

  • text/plain(プレーンテキスト)
  • text/html(HTMLテキスト)
  • application/xhtml+xml(XHTMLテキスト)
  • image/gif(GIF画像)
  • image/jpeg(JPEG画像)
  • image/png(PNG画像)
  • video/mpeg(MPEG動画)
  • application/octet-stream(任意のバイナリデータ)
  • application/pdf(PDF文書)
  • message/rfc822(RFC 822形式)
  • multipart/alternative(HTMLメールのHTMLとプレーンテキストのように、同じ情報を異なる形式で表したマルチパート)
  • application/x-www-form-urlencoded(HTTPのPOSTメソッドによるフォームデータの送信)
  • multipart/form-data(同上、主にファイルアップロードを伴う場合)

正式なsubtypeが与えられていないデータ形式には、x-で始まる独自の名称を使うことができる(例: application/x-gzip)。

vnd.で始まるベンダー固有の名称を使うこともできる(例: application/vnd.ms-excel)。

parameterは追加の情報を指定する。
よく使われるものに、text/plainやtext/htmlの文字コード系を明記するcharsetパラメータがある。 typeによってはデフォルトのsubtypeが規定されており、 受信側は自分の扱えないsubtypeであってもデフォルトのsubtypeとして扱うことにより最低限の取り扱いが可能となる。
textのデフォルトはtext/plain、
applicationのデフォルトはapplication/octet-stream、
multipartのデフォルトはmultipart/mixed
である。


Content-Transfer-Encoding

MIMEではUS-ASCIIだけでなくデータのさまざまな符号化方法の指定がヘッダで可能

Content-Transfer-Encoding: mechanism

mechanismとして、"7bit", "8bit", "binary", "quoted-printable", "base64"が指定できる。 一般的に利用できるのは"7bit", "quoted-printable", "base64"であり、 "8bit", "binary"は一定の条件を満たす場合しか利用できない。


7bit

デフォルト値。7 ビットのテキストを表す。 Content-Transfer-Encodingヘッダフィールドを省略した場合は、この7bitを指定したのと同じ意味となる。 US-ASCIIやISO-2022-JPは確実に7 ビットのテキストであるため、これにあたる。

quoted-printable

US-ASCIIに存在する文字はそのまま使い、存在しない文字などを'=??'のような形で符号化する。 ここで、??には文字のコードを大文字の16進数で指定する。その他、以下のような規則がある。

  • '='自体は'=3D'となる。
  • 行末に空白がある場合、伝送の過程で失われるおそれがあるため、'=20'としてこれを保存する。
  • エンコードの過程で行を折り返す(改行を挿入する)場合、'='と改行の組み合わせを挿入し、もともとあった改行と区別できるようにする。

ヨーロッパ系の言語では、多くの文字がUS-ASCIIと同一で一部に独自の文字を使っているものが多い。 この場合にquoted-printableを用いると、US-ASCIIはそのままの文字を使用しているので、 データがほとんど大きくならず、quoted-pritable対応プログラムを使わなくても、 大体の内容が読めるという利点がある。 しかし通常のバイナリデータや、Shift JISやEUC-JPといった仮名漢字などの非ヨーロッパ系の文字のテキストデータに quoted-printableを適用した場合は、base64を使用した場合よりも大幅にデータが大きくなる。

base64

3オクテット (24 ビット) を6 ビットずつ4つに分割し、 各6 ビットの値に対してそれぞれUS-ASCIIの64 文字(英字52 文字、数字10 文字、「+」、「/」)を割り当てる符号化方式。 詳細は「Base64」の項を参照。 この符号化によって、SMTPなどUS-ASCIIしか許されていない通信路でもバイナリデータを交換できるメリットはあるが、 データ容量は約33%増加する。


情報元:Multipurpose Internet Mail Extensions - Wikipedia

コメントの投稿

非公開コメント

Flashカレンダー
FC2カウンター
最新記事
カテゴリ
ユーザータグ

設定 文字コード HTML 用語 JavaScript 特殊文字 SyntaxHighlighter MySQL Add-ons CSS Firefox Wordpress 

検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。