/
528.txt
368 lines (277 loc) · 14.2 KB
/
528.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
[16] [DFN[[RUBY[[[MIME]]][マイム]]]]は、[[インターネットメール]]において[[非ASCII文字]]や非テキストデータ、
[[添付ファイル]]や外部参照を記述したり、単一[[メッセージ]]を複数[[メッセージ]]に分割したりする一連の[[メッセージ]]構文仕様です。
[36] [[MIME]] は [[RFC 822]] により規定される[[電子メール]]の[[メッセージ]]形式の上位層として使用する追加のプロトコルとして定義されていますが、
現在では常に併用される[[電子メール]]プロトコル群の一部分となっています。
[37] また [[MIME]] の定義する機能の一部または全部を [[Web]] をはじめとする[[電子メール]]以外の[[プロトコル]]も利用しています。
* 範囲の拡大
[19] [[MIME]] はその名の通り本来は[[電子メール]]のための仕様でしたが、
徐々にその適用範囲と意味が拡大しています。
[22] [[MIME]] は当初から[[電子メール]]だけでなく、ほぼ同じメッセージ形式を採用していた[[ネットニュース]]
([[USENET]]) も想定範囲となっていました。
[29] [[MIME]] はこれら以外の [[HTTP]]、[[SIP]]、[[BEEP]] などの[[プロトコル]]にも拡大されていきました。
ただしその際に元の [[MIME]] の意味や構文が少しずつ変形されていきました。
[30] [[MIME]] の [[Base64]] は、 (そもそも [[MIME]] 以前からあったのですが)
[[MIME]] の他の機能を使っていない様々な場面でも使われるようになりました。
そのような場面では、俗に「[[MIME]]」という名称で実は [[Base64]] を指していることがあります。
[31] [[MIME]] の[[媒体型]]は俗に [[MIME型]]、あるいは更に略されて [[MIME]]
と呼ばれるようになり、「[[MIME]]」という用語が本来の [[MIME]] よりも
[[MIME型]]のことを指していることが多いとすら思われます。 [[MIME型]]は[[インターネット]]等相当広範囲で用いられています。
* 概念
[FIG(short list)[
- [[MIME用語の定義]]
- [[MIME適合性]]
- [[実体]]
- [[MIMEヘッダー]]
-- [CODE(MIME)@en[[[Content-Type:]]]]
-- [CODE(MIME)@en[[[Content-Transfer-Encoding:]]]]
-- [CODE(MIME)@en[[[Content-Description:]]]]
-- [CODE(MIME)@en[[[Content-ID:]]]]
-- [CODE(MIME)@en[[[Content-Disposition:]]]]
-- [CODE(MIME)@en[[[Content-Duration:]]]]
-- [CODE(MIME)@en[[[Content-Language:]]]]
-- [CODE(MIME)@en[[[Content-MD5:]]]]
- [[MIME型]]
-- [CODE(MIME)@en[[[application/*]]]]
--- [CODE(MIME)@en[[[application/octet-stream]]]]
-- [CODE(MIME)@en[[[audio/*]]]]
-- [CODE(MIME)@en[[[image/*]]]]
-- [CODE(MIME)@en[[[message/*]]]]
--- [CODE(MIME)@en[[[message/rfc822]]]]
--- [CODE(MIME)@en[[[message/partial]]]]
--- [CODE(MIME)@en[[[message/external-body]]]]
-- [CODE(MIME)@en[[[multipart/*]]]]
--- [CODE(MIME)@en[[[multipart/mixed]]]]
--- [CODE(MIME)@en[[[multipart/alternative]]]]
--- [CODE(MIME)@en[[[multipart/parallel]]]]
--- [CODE(MIME)@en[[[multipart/related]]]]
-- [CODE(MIME)@en[[[text/*]]]]
--- [CODE(MIME)@en[[[text/plain]]]]
--- [CODE(MIME)@en[[[text/richtext]]]]
--- [CODE(MIME)@en[[[text/enriched]]]]
-- [CODE(MIME)@en[[[video/*]]]]
- [[MIME charset]]
-- [CODE(charset)@en[[[US-ASCII]]]]
-- [CODE(charset)@en[[[ISO-8859-*]]]]
- [[内容転送符号化]]
-- [CODE(MIME)@en[[[Base64]]]] / [[B符号化]]
-- [CODE(MIME)@en[[[Quoted-Printable]]]] / [[Q符号化]]
- [[引数 (MIME)]]
- [CODE(ABNF)@en[[[encoded-word]]]]
- [[PGP/MIME]]
- [[S/MIME]]
- [[MHTML]]
- [CODE(URI)@en[[[cid:]]]]
- [[HTTP実体とMIME実体]]
- [[MIMEの正規符号化モデル]] Canonical Encoding Model
]FIG]
* 仕様書
** MIME の本体
*** RFC 1341 <urn:ietf:rfc:1341>
MIME (Multipurpose Internet Mail Extensions): Mechanisms for
Specifying and Describing the Format of Internet Message Bodies. N.
Borenstein, N. Freed. June 1992. (Format: TXT=211117, PS=347082,
PDF=192244 bytes) (Obsoleted by RFC1521) (Status: PROPOSED STANDARD)
*** [[RFC1342]] <urn:ietf:rfc:1342>
*** [[RFC1521]] <urn:ietf:rfc:1521>
1521 MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms
[PRE[
for Specifying and Describing the Format of Internet Message Bodies.
N. Borenstein, N. Freed. September 1993. (Format: TXT=187424,
PS=393670, PDF=205091 bytes) (Obsoletes RFC1341) (Obsoleted by
RFC2045, RFC2046, RFC2047, RFC2048, RFC2049) (Updated by RFC1590)
(Status: DRAFT STANDARD)
]PRE]
*** [[RFC1522]] <urn:ietf:rfc:1522>
1522 MIME (Multipurpose Internet Mail Extensions) Part Two: Message
[PRE[
Header Extensions for Non-ASCII Text. K. Moore. September 1993.
(Format: TXT=22502 bytes) (Obsoletes RFC1342) (Obsoleted by RFC2045,
RFC2046, RFC2047, RFC2048, RFC2049) (Status: DRAFT STANDARD)
]PRE]
1590 Media Type Registration Procedure. J. Postel. March 1994.
[PRE[
(Format: TXT=13044 bytes) (Obsoleted by RFC2045, RFC2046, RFC2047,
RFC2048, RFC2049) (Updates RFC1521) (Status: INFORMATIONAL)
]PRE]
*** [[RFC2045]] <urn:ietf:rfc:2045>
2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of
[PRE[
Internet Message Bodies. N. Freed, N. Borenstein. November 1996.
(Format: TXT=72932 bytes) (Obsoletes RFC1521, RFC1522, RFC1590)
(Updated by RFC2184, RFC2231) (Status: DRAFT STANDARD)
]PRE]
*** [[RFC2046]] <urn:ietf:rfc:2046>
2046 Multipurpose Internet Mail Extensions (MIME) Part Two: Media
[PRE[
Types. N. Freed, N. Borenstein. November 1996. (Format: TXT=105854
bytes) (Obsoletes RFC1521, RFC1522, RFC1590) (Updated by RFC2646)
(Status: DRAFT STANDARD)
]PRE]
*** [[RFC2047]] <urn:ietf:rfc:2047>
2047 MIME (Multipurpose Internet Mail Extensions) Part Three: Message
[PRE[
Header Extensions for Non-ASCII Text. K. Moore. November 1996.
(Format: TXT=33262 bytes) (Obsoletes RFC1521, RFC1522, RFC1590)
(Updated by RFC2184, RFC2231) (Status: DRAFT STANDARD)
]PRE]
*** [[RFC2048]] <urn:ietf:rfc:2048>
2048 Multipurpose Internet Mail Extensions (MIME) Part Four:
[PRE[
Registration Procedures. N. Freed, J. Klensin, J. Postel. November
1996. (Format: TXT=45033 bytes) (Obsoletes RFC1521, RFC1522, RFC1590)
(Updated by RFC3023) (Also BCP0013) (Status: BEST CURRENT PRACTICE)
]PRE]
*** [[RFC2049]] <urn:ietf:rfc:2049>
2049 Multipurpose Internet Mail Extensions (MIME) Part Five:
[PRE[
Conformance Criteria and Examples. N. Freed, N. Borenstein. November
1996. (Format: TXT=51207 bytes) (Obsoletes RFC1521, RFC1522, RFC1590)
(Status: DRAFT STANDARD)
]PRE]
** 部分改訂
2184 MIME Parameter Value and Encoded Word Extensions: Character Sets,
[PRE[
Languages, and Continuations. N. Freed, K. Moore. August 1997.
(Format: TXT=17635 bytes) (Obsoleted by RFC2231) (Updates RFC2045,
RFC2047, RFC2183) (Status: PROPOSED STANDARD)
]PRE]
2231 MIME Parameter Value and Encoded Word Extensions: Character Sets,
[PRE[
Languages, and Continuations. N. Freed, K. Moore. November 1997.
(Format: TXT=19280 bytes) (Obsoletes RFC2184) (Updates RFC2045,
RFC2047, RFC2183) (Status: PROPOSED STANDARD)
]PRE]
** 周辺仕様
1344 Implications of MIME for Internet Mail Gateways. N. Borenstein.
[PRE[
June 1992. (Format: TXT=25872, PS=51812, PDF=24430 bytes) (Status:
INFORMATIONAL)
]PRE]
1820 Multimedia E-mail (MIME) User Agent Checklist. E. Huizer. August
[PRE[
1995. (Format: TXT=14672 bytes) (Obsoleted by RFC1844) (Status:
INFORMATIONAL)
]PRE]
1844 Multimedia E-mail (MIME) User Agent Checklist. E. Huizer. August
[PRE[
1995. (Format: TXT=15072 bytes) (Obsoletes RFC1820) (Status:
INFORMATIONAL)
]PRE]
* MIME 以前
- [[RFC934]]
- [[RFC1049]]
- [[RFC1154]]
- [[RFC1345]]
- [[draft-ietf-822ext-qreadable]] <urn:ietf:id:draft-ietf-822ext-qreadable-02>
-- [[Content-Type:領域]] (古い定義を参照)
-- Content-Charset:領域
-- Mnemonic-Intro:領域
-- Orig-Content-Charset:領域
- [[ASCII Armor]]
- [[JUNETコード]]
* MIME を使ったプロトコル
** [11] MIME をそのまま使ったプロトコル
[FIG(table)[
:p:[[プロトコル]]
:d:概略
:t:[[転送路]]
:p:[8] [[電子メイル]] ([[RFC 822]], [[RFC 2822]], [[RFC 5322]])
:d:[[MIME]] 規格本体で規定されています ([[RFC 2045]])。
:t:転送路: [[SMTP]] では [CODE(MIME)[[[7bit]]]]。拡張された SMTP
では [CODE(MIME)[[[8bit]]]] や [CODE(MIME)[[[binary]]]]
:p:[9] [[電子ニュース]] ([[son-of-RFC 1036]], [[Usefor]])
:d:MIME は一応電子ニュースも視野に入れていました。
実際にニュースでもよく使われます。
:t:[[NNTP]] では [CODE(MIME)[[[8bit]]]]
:p:[10] [[辞書サービスプロトコル]] ([[RFC 2229]])
:d:[CODE[[[OPTION]] [[MIME]]]] では MIME が使われます。
:t:[CODE(MIME)[[[8bit]]]]
:p:[[CIP]] ([[RFC 2653]])
:d:
:t:?
:p:[17] [[CPIM]] ([[RFC 3862]])
:d:[CODE(MIME)[[[message/cpim]]]] の2番目の部分は MIME
が使われます。
:t:?
:p:[18] [[MTQP]] ([[RFC 3887]])
:d:[CODE[[[TRACK]]]] 命令の応答に MIME が使われます。
:t:[CODE(MIME)[[[8bit]]]]
:p:[[BEEP]]
:t:[CODE(MIME)@en[[[binary]]]]
:p:[CODE(MIME)@en[[[application/vnd.pwg-multiplexed]]]]
:t:[CODE(MIME)@en[[[binary]]]]
]FIG]
** [12] MIME に似たものを使ったプロトコル
[33] [[HTTP]] は [[MIME]] と似たものを使っていますが、[[電子メール]]と [[HTTP]]
とでは様々な性質が異なるとして、色々な差異が存在しています [SRC[>>13]]。
[REFS[
- [32] [CITE@en[RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content]] ([TIME[2014-08-07 05:54:02 +09:00]] 版) <https://tools.ietf.org/html/rfc7231#appendix-A>
]REFS]
[34] [[HTTP]] から派生した[[プロトコル]]をはじめ、 [[MIME]]
と似て非なる[[プロトコル]]が他にも多々あります。
[FIG(table)[
:p:[[プロトコル]]
:d:概略
:t:[[転送路]]
:p:[13] [[HTTP]] ([[RFC 1945]], [[RFC 2068]], [[RFC 2616]], [[RFC 723x]], [[RFC 7540]])
:d:MIME を基にしています (が MIME そのものではありません)。
現在となっては本家を超えて最も広く使われている“MIME”かもしれません。
:t:[CODE(MIME)[[[binary]]]]
:p:[14] [[RTSP]] ([[RFC 2326]])
:d:HTTP を基にしています (が HTTP そのものではありません)。
:t:[CODE(MIME)[[[binary]]]]
:p:[15] [[SIP]] ([[RFC 2543]], [[RFC 3261]])
:d:HTTP を基にしています (が HTTP そのものではありません)。
:t:[CODE(MIME)[[[binary]]]]
:p:[[S-HTTP]]
:d:HTTP を基にしています (が HTTP そのものではありません)。
:t:[CODE(MIME)[[[binary]]]]
:p:[26] [[MMS]]
:d:[[RFC 822]]・[[RFC 2616]] をもとにしていて、
[CODE(MIME)@en[[[Content-Type]]]] も使えます。
:t:?
:p:[27] [[MRCP]] ([[RFC 4463]])
:t:?
:p:[[Q4S]]
:t:[CODE(MIME)[[[binary]]]]
:p:[[ICAP]]
:t:[CODE(MIME)[[[binary]]]]
:p:[23] [[MSRP]] ([[RFC 4975]])
:d:[[RFC 822]]/[[MIME]] もどきなメッセージの書式を使いますが、[[本体]]を含む場合、
[[MIME]] が用いられます。ただし、[[頭欄]]の構文に若干の (実用上は影響しない程度の) 違いがあります。
:t:?
:p:[24] [[POファイル]]
:d:実際には [[MIME]] ではありませんが、 [[MIME]]
風の[[ヘッダー]]のようなものを記述することになっています。
:t:?
]FIG]
* メモ
- [1] [WEAK[2002-12-05 (木) 20:46]] ''[[名無しさん]]'': 20:46 なので age
- [2] ''TEXT version of Draft RFC'' <http://www.imc.org/ietf-822/old-archive1/msg00061.html> 一番最初の MIME draft? (91/4)
- [3] MIME は設計時は (7ビット) [[SMTP]] を念頭に置きながらも、8ビット転送やバイナリ転送も考慮に入れ、それなりに汎用性を持たせたつもりだったんでしょう。時代が変わって8ビットが当たり前で、めいるの規格上だけが7ビットの現在、時代錯誤な MIME の規定をニュース向けにはねじまげようと [[CharlesLindsey]] は頑張ってます。彼曰く、 [[HTTP]] だってそうしただろう、と。 MIME'r
- [4] の言い分では、 HTTP は仕方なかったんだ、失敗だった (標準化以前にどんどん実装が進んじゃったんだから仕方ないよねぇ。) だけどこれ以上 MIME variant を増やして複雑化させるな、と。
- [5] >>3-4 どっちの言い分も分かるんだけど、ニュース版 MIME はちょっとこじつけの感があるし、実際ほとんどの MIME 実装は7ビットなメイル MIME で実装してる (ニュース向けにも。) 以上、混乱は必死だろうし。
- [6] >>3-5 HTTP MIME がメイル MIME と随分仕様が違うのは HTTP<=>メイル関門なんて存在しないから問題にならないけど、メイル<=>ニュースは大問題だしね。
- [7] >>3-6 いっそぼろぼろの MIME なんてやめて、 (822 を捨てた [[CPIM]] みたいに) 1からやりなおしたら、とも思うんだけど、 CPIM だって MIME を使うんだよなあ。
[20]
インターネット[[媒体型]]のことを [Q@en[MIME]] と呼ぶのは完全な誤りです。
[Q[[[MIME型]]]]と呼ぶなら (よくないけど) まだしも。
([[名無しさん]] [sage])
[21]
[[RFC 2048]] (登録手続き) は改訂され、
[[RFC 4289]] ([[MIME]] の登録手続き) と
[[RFC 4288]] ([[媒体型]]の登録手続き)
になりました。どちらも [[BCP 13]] のようです。
([[名無しさん]] [WEAK[2005-12-21 08:43:47 +00:00]])
[25] [CITE@ja[トルカ | サービス・機能 | NTTドコモ]]
([TIME[2010-01-20 14:42:39 +09:00]] 版)
<http://www.nttdocomo.co.jp/service/imode/make/content/toruca/index.html>
[28] [CITE[mozilla-comm/jsmime]]
( ([TIME[2014-04-15 09:11:18 +09:00]] 版))
<https://github.com/mozilla-comm/jsmime>
[35] [CITE@en[RFC 5536 - Netnews Article Format]]
( ([TIME[2014-09-21 18:14:06 +09:00]] 版))
<http://tools.ietf.org/html/rfc5536#section-2.3>
[38] [CITE@en[RFC 5703 - Sieve Email Filtering: MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure]]
([TIME[2015-05-31 17:24:06 +09:00]] 版)
<https://tools.ietf.org/html/rfc5703>