/
425.txt
483 lines (378 loc) · 24.9 KB
/
425.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
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
* [CODE(MIME)[Content-Disposition:]] 頭欄 (MIME, HTTP, SIP)
[44] [DFN[[CODE(MIME)[Content-Disposition]]]]
[[実体頭欄]]には、
[[実体]]の[RUBYB[配置] [disposition]]についての情報を記述します。
この頭欄は、ある実体について、たとえば
- [[添付]]データか、[[行内]]データか、それとも ...
- 保存時のおすすめの[[ファイル名]]
のような[Q[性質]]を記述できます。
[50] この頭欄は元々は [ABBR[[[MIME]]] [多目的インターネット・メイル拡張]]
で使用するために定義されましたが、
[ABBR[MIME] [多目的インターネット・メイル拡張]]
と似た仕組みを採用している
[ABBR[[[HTTP]]] [ハイパーテキスト転送プロトコル]]
や [ABBR[HTTP] [ハイパーテキスト転送プロトコル]]
を流用した [ABBR[[[SIP]]] [セッション初期化プロトコル]]
などでも使用されています。
* 仕様
[52] [CODE(MIME)[Content-Disposition]] 欄は、
[ABBR[[[MIME]]] [多目的インターネット・メイル拡張]],
[ABBR[[[HTTP]]] [ハイパーテキスト転送プロトコル]],
[ABBR[[[SIP]]] [セッション初期化プロトコル]]
など様々なプロトコルで使用されています。
それぞれのプロトコルの歴史的・技術的その他の理由で、
細かい規定などに様々な違いがあります。
[4] [ABBR[MIME] [多目的インターネット・メイル拡張]]
([[電子メイル]]) 系の仕様書:
= [1] [[RFC 1806]]
-- <urn:ietf:rfc:1806>
-- [[実験的]]プロトコルとして提案されましたが、
RFC 2183 によって[[廃止]]されました。
= [2] [[RFC 2183]]
-- <urn:ietf:rfc:2183>
-- RFC 1808 の改訂版で、[[提案標準]]になりました。
= [3] [[RFC 2184]]
-- <urn:ietf:rfc:2184>
-- 引数の構文に関する[[更新]]規格です。
-- 提案標準でしたが、 RFC 2231 により廃止されました。
= [51] [[RFC 2231]]
-- <urn:ietf:rfc:2231>
-- RFC 2184 の改訂版で、引数の構文に関する RFC 2183
の更新規格です。 RFC 2184 と同じく提案標準です。
[48] [ABBR[HTTP] [ハイパーテキスト転送プロトコル]] 系の仕様書:
= [18] [ABBR[[[I-D]]] [インターネット原案]]
[[draft-faerber-http-content-disp-00]]
[CITE[Use of the Content-Disposition header with HTTP]]
-- <urn:ietf:id:draft-faerber-http-content-disp-00>
-- <http://ftp.ics.uci.edu/pub/ietf/http/draft-faerber-http-content-disp-00.txt>
-- [[RFC 2068]]・RFC 2616 を更新することを意図していましたが、
結局 RFC 化されませんでした。
-- RFC 2183 相当の内容です。 RFC 2184 には触れていません。
= [53] [[RFC 2616]] ([[HTTP/1.1]])
-- <urn:ietf:rfc:2616>
-- [CITE[19.5.1 Content-Disposition]]
-- RFC 自体は[[原案標準]]ですが、 [CODE(HTTP)[Content-Disposition]]
の部分は参考です。
-- 制定時期にもかかわらず、 RFC 1806 相当の内容です。
[ABBR[HTTP] [ハイパーテキスト転送プロトコル]] では特に
[CODE(MIME)[[[filename]]]] 引数がよく使われているにもかかわらず、
標準化は中途半端な状況です。
[38] [ABBR[SIP] [セッション初期化プロトコル]] 系の仕様書:
= [[RFC 3261]]
-- [CITE[20.11 Content-Disposition]]
-- 提案標準です。
-- 前版の [[RFC 2543]] では定義されていませんでしたが、
この版で RFC 2183 を基に規定され、積極的に用いられています。
なお、 RFC 2231 は参照していません。
= [[RFC 3968]]
-- [ABBR[SIP] [セッション初期化プロトコル]]
頭欄で使われる引数の登録簿を規定して、初期状態として
[CODE(SIP)[Content-Disposition]] には [CODE(SIP)[handling]]
が登録されています。
[7] [ABBR[IANA] [インターネット登録番号事務局]] の登録簿:
- [CITE[MAIL CONTENT DISPOSITION Values and Parameters]]
-- <http://www.iana.org/assignments/mail-cont-disp>
10 October 2004
各仕様共通の登録簿です。
[[#comment]]
* 構文
[45]
- [CODE(ABNF)[[DFN[Content-Disposition]] := "Content-Disposition" *[[WSP]] ":" [ [[FWS]] ] disposition-type *([FWS] ";" [FWS] [[parameter]]) [FWS] ]]
構造的に似た [CODE(MIME)[[[Content-Type]]]] 欄とは異なり、
[CODE(ABNF)[disposition-type]] と [CODE(ABNF)[parameter]]
は独立です。例えば [CODE(MIME)[filename]] 引数は
[CODE(ABNF)[disposition-type]] が [CODE(MIME)[inline]]
でも [CODE(MIME)[attachment]] でも何であっても使えます。
[46] [CODE(ABNF)[parameter]] は (少なくても MIME で使う時には)
RFC 2184/2231 の方法で拡張されています。
[[#comment]]
* Disposition 型
[47]
,[CODE(ABNF)[disposition-type]] ,意味 ,状態 ,出典
,[CODE(MIME)[[[aib]]]] ,認証識別本体 , ,SIP ([[RFC 3895]])
,[CODE(MIME)[[[alert]]]] ,利用者に警告する個別音色 , ,"SIP (RFC 3261), [IANAREG]"
,[CODE(MIME)[[[ancillary]]]] ,(補助的) ,非標準 ,(draft-newman-mime-cdisp-metadata <urn:ietf:rfc:draft-newman-mime-cdisp-metadata-02>)
,[CODE(MIME)[[[attachment]]]] ,利用者が表示を制御 , ,"MIME (RFC 1806, RFC 2183), HTTP (I-D), [IANAREG]"
,[CODE(MIME)[[[early-session]]]] ,早期通信セッション記述 , ,"SIP (RFC to be), [IANAREG]"
,[CODE(MIME)[[[file]]]] ,ファイル[[提出]] ,誤り ,"[[フォーム]] (RFC 2388, [[HTML 4.01]] 初版)"
,[CODE(MIME)[[[form-data]]]] , ,[[フォーム]]応答として処理 ,"[[フォーム]] ([[RFC 1867]], [[RFC 2388]]), [IANAREG]"
,[CODE(MIME)[[[icon]]]] ,利用者に絵として表示 , ,"SIP (RFC 3261), [IANAREG]"
,[CODE(MIME)[[[inline]]]] ,自動的に表示 , ,"MIME (RFC 1806, RFC 2183), HTTP (I-D), [IANAREG]"
,[CODE(MIME)[[[render]]]] ,利用者に表示するべき , ,"SIP (RFC 3261), [IANAREG]"
,[CODE(MIME)[[[session]]]] ,通信セッション記述 , ,"SIP (RFC 3261), [IANAREG]"
,[CODE(MIME)[[[signal]]]] ,黙って処理するトンネル化内容 , ,"SIP ([[RFC 3204]]), [IANAREG]"
,[CODE(MIME)[[[signed-receipt-protocol]]]] , ,署名受信者用要求署名形式 ,"SIP (RFC 3335), [IANAREG]"
,[CODE(MIME)[[[signed-receipt-micalg]]]] , ,署名受信者用要求署名算法 ,"SIP (RFC 3335), [IANAREG]"
* パラメーター
[49]
,引数名 ,説明 ,状態 ,出典
,[CODE(MIME)[[[alternates]]]] ,代替媒体型 ,非標準 ,W3C NOTE-[[device-upload]]
,[CODE(MIME)[[[creation-date]]]] ,作成日時 , ,"MIME (RFC 2183), HTTP (I-D), [IANAREG]"
,[CODE(MIME)[[[device]]]] ,作成機器 ,非標準 ,W3C NOTE-[[device-upload]]
,[CODE(MIME)[[[filename]]]] ,[[ファイル名]] , ,"MIME (RFC 1806, RFC 2183), HTTP (RFC 2616), [IANAREG]"
,[CODE(MIME)[[[handling]]]] ,処理が必要か , ,"SIP ([[RFC 3204]], [[RFC 3968]]), [IANAREG]"
,[CODE(MIME)[[[modification-date]]]] ,編集日時 , ,"MIME (RFC 2183), HTTP (I-D), [IANAREG]"
,[CODE(MIME)[[[name]]]] ,[[フォーム]]欄名 , ,"フォーム ([[RFC 1867]], [[RFC 2388]]), [IANAREG]"
,[CODE(MIME)[[[read-date]]]] ,読取日時 , ,"MIME (RFC 2183), HTTP (I-D), [IANAREG]"
,[CODE(MIME)[[[size]]]] ,大体の大きさ , ,"MIME (RFC 2183), HTTP (I-D), [IANAREG]"
,[CODE(MIME)[[[voice]]]] , ,音声内容の型・用途 ,"[ABBR[[[VPIM]]] [インターネット・メイル音声プロファイル]] ([[RFC 2421]]), [IANAREG]"
[8] [[RFC 2183]] で調子に乗って色々定義しましたが、 [[MIME]] では
[CODE(MIME)[filename]] 引数以外ほとんど使われていません。
[[#comment]]
** Voice パラメーター
[16] IANAREG (>>7) に値の一覧があります。
,Voice-Message , ,[[[RFC2421]]]
,Voice-Message-Notification , ,[RFC 2421]
,Originator-Spoken-Name , ,[RFC 2421]
,Recipient-Spoken-Name , ,[RFC 2421]
,Spoken-Subject , ,[RFC 2421]
[[#comment]]
** Handling パラメーター
[17] IANAREG (>>7) に値の一覧があります。
,required ,本体を理解しなければならない ,[[[RFC3204]]]
,optional ,本体は黙って捨てても良い ,[RFC 3204]
- [27] [[RFC 3459]] が RFC 3204 を update して、 [CODE[HANDLING]] パラメーターの定義を乗っ取りました。
- [28] 既定値は [CODE(MIME)[required]], 未対応値の扱いも [CODE(MIME)[REQUIRED]] です。
* 歴史
[FIG(quote)[
[FIGCAPTION[
[6] RFC 2616 (HTTP/1.1) 19.5.1 Content-Disposition
]FIGCAPTION]
[5]
> The Content-Disposition response-header field has been proposed as a
means for the origin server to suggest a default filename if the user
requests that the content is saved to a file. This usage is derived
from the definition of Content-Disposition in RFC 1806 [35].
[CODE(HTTP)[Content-Disposition]] [[応答頭欄]]は、
[[利用者]]が[[内容]]を[[ファイル]]に保存する場合の既定の[[ファイル名]]を[[起源鯖]]が提案するための手段として提案されています。
この使用は [[RFC1806]] の [CODE(MIME)[Content-Disposition]]
の定義から派生しています。
>
- content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
- disposition-type = "attachment" | disp-extension-token
- disposition-parm = filename-parm | disp-extension-parm
- filename-parm = "filename" "=" quoted-string
- disp-extension-token = token
- disp-extension-parm = token "=" ( token | quoted-string )
> An example is
- Content-Disposition: attachment; filename="fname.ext"
> The receiving user agent SHOULD NOT respect any directory path
information present in the filename-parm parameter, which is the only
parameter believed to apply to HTTP implementations at this time. The
filename SHOULD be treated as a terminal component only.
現時点では [CODE(ABNF)[filename-parm]] 引数だけが HTTP
実装に適用されると信じられていますが、
受信した[[利用者エージェント]]は、 [CODE(ABNF)[filename-parm]]
引数に示されたいかなる[[ディレクトリ]][[経路]]情報も尊重する'''べきではありません'''。
ファイル名は最終部品のみとして扱う'''べきです'''。
> If this header is used in a response with the application/octet-stream content-type, the implied suggestion is that the user agent
should not display the response, but directly enter a `save response
as...' dialog.
この頭が[[応答]]で [CODE(MIME)[[[application/octet-stream]]]]
[[内容型]]と共に使われている場合は、利用者エージェントは応答を表示するべきではなく、
「応答を保存・・・」対話に直接入るべきであることを暗に提案しています。
> See section 15.5 for Content-Disposition security issues.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[9] RFC 2616 (HTTP/1.1) 15.5 Content-Disposition Issues
]FIGCAPTION]
> RFC 1806 [35], from which the often implemented Content-Disposition
(see section 19.5.1) header in HTTP is derived, has a number of very
serious security considerations. Content-Disposition is not part of
the HTTP standard, but since it is widely implemented, we are
documenting its use and risks for implementors. See RFC 2183 [49]
(which updates RFC 1806) for details.
[[HTTP]] でしばしば実装される [CODE(HTTP)[Content-Disposition]]
頭は [[RFC 1806]] から派生したものですが、 RFC 1806
には多くの非常に深刻な安全上の問題があります。 [CODE(HTTP)[Content-Disposition]]
は HTTP 規格の一部ではありませんが、広く実装されていることから、
その使用と危険を実装者のために文章化しています。
詳しくは (RFC 1806 を更新する) [[RFC 2183]] をご覧下さい。
]FIG]
[10] [[RFC 2616]] の改訂である [[RFC 2731]] は、 [[RFC 6266]] で規定されているとして
[CODE(HTTP)@en[[[Content-Disposition:]]]] [[ヘッダー]]の規定を削除しています。
* 特定の MIME 型での意味と処理モデル
** [CODE(MIME)@en[multipart/form-data]]
[65] [CODE(MIME)@en[[[multipart/form-data]]]] の項をご覧ください。
** [CODE(MIME)@en[multipart/related]]
[68] [CODE(MIME)@en[[[multipart/related]]]] では値は無視されます。[[引数]]は無視されません。
詳しくは [CODE(MIME)@en[[[multipart/related]]]] の項をご覧ください。
* 実装
- [22] 現実の実装では [[Content-Type:]] 欄の値, この [CODE[Content-Disposition:]] 欄の値、それに [[URI]] のファイル名やその他の条件で、 [[WWW]] ブラウザ等はブラウザ内で表示したり保存ダイアログを出したり, どの部分をファイル名に採用するかを決めたり、云々でばらばらで混乱していますね。 (特に [[M$IE]] の場合は、版によっても挙動が変わったり、同じ版でも Windows Registry の設定で不可解に変化したりするそうです。)
- [23] サーバーが UA に保存させるのに、 dispositon 型 [CODE[file]] を指定して、 [SAMP[Content-Disposition: file; filename=foo]] のように指定することがあるようです。 ([[CGI]] script とかで。)
- [24] ''Bug 2781 - freemail.ne.jp(GraceMail)でメール本文が表示されない(Content-disposition: attachment)'' <http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=2781> CD: におかしな値を設定していたために、 [[Mozilla]] の動作が規格により従う形に変更された際に意図せぬ動作をするようになった例。
[55]
[CITE[content-disposition:attachment ヘッダを返すコンテンツにアクセスすると、親フレームが消えてしまう]] <http://support.microsoft.com/?scid=kb;ja;889656>
> 新規に開かれたウィンドウ内のフレーム構成のコンテンツの子フレームから content-disposition:attachment ヘッダが付加されたコンテンツにアクセスした際に、呼び出しもとの親フレームのウィンドウが消えてしまう場合があります。
[[WinIE]] の実装ってすごく不思議なことがいろいろ起こりますよね。
[56]
[CITE[[IE] Content-Disposition: attachment でファイルをダウンロードするとフレームが更新されなくなる]] <http://support.microsoft.com/default.aspx?scid=kb;ja;418126>
> Internet Explorer でサーバーから Content-Disposition: attachment ヘッダーによって渡されたファイルを保存すると、その後フレームの内容を更新するようなリンクが反応しなくなります。
> また、このとき、スクリプトを実行している場合は、「アクセスが拒否されました」というエラーのダイアログが表示される場合があります。
WinIE ってつくづく不思議v 回避策も意味不明で素敵w
[[#comment]]
* 例
[54] 電子メイルに画像を[[行内]]表示で埋込む例:
[PRE(822)[
[CODE(MIME)[[[Content-Type]]]]: [CODE(MIME)[[[multipart/mixed]]]];
[CODE(MIME)[[[boundary]]]]="boundary"
--boundary
[CODE(MIME)[Content-Type]]: [CODE(MIME)[[[text/plain]]]];
[CODE(MIME)[[[charset]]]]=[CODE(charset)[[[ISO-2022-JP]]]]
先日の旅行で撮った写真を送ります。
--boundary
[CODE(MIME)[Content-Type]]: [CODE(MIME)[[[image/png]]]]
[CODE(MIME)[[[Content-Transfer-Encoding]]]]: [CODE(MIME)[[[Base64]]]]
[CODE(MIME)[[[Content-Disposition]]]]: [CODE(MIME)[[[inline]]]]
[VAR[... Base64 で符号化した画像データ ...]]
--boundary
[CODE(MIME)[Content-Type]]: [CODE(MIME)[[[text/plain]]]];
[CODE(MIME)[[[charset]]]]=[CODE(charset)[[[ISO-2022-JP]]]]
どうですか? 素敵なところでしょう?
--boundary--
]PRE]
レンダリング例:
[PRE[
先日の旅行で撮った写真を送ります。
+---------------------------------------+
| |
: (写真) :
| |
+---------------------------------------+
どうですか? 素敵なところでしょう?
]PRE]
[25] 電子メイルに画像を[[添付]]する例:
[PRE(822)[
[CODE(MIME)[[[Content-Type]]]]: [CODE(MIME)[[[multipart/mixed]]]];
[CODE(MIME)[[[boundary]]]]="boundary"
--boundary
[CODE(MIME)[Content-Type]]: [CODE(MIME)[[[text/plain]]]];
[CODE(MIME)[[[charset]]]]=[CODE(charset)[[[ISO-2022-JP]]]]
先日の旅行で撮った写真を送ります。
--boundary
[CODE(MIME)[Content-Type]]: [CODE(MIME)[[[image/png]]]]
[CODE(MIME)[[[Content-Transfer-Encoding]]]]: [CODE(MIME)[[[Base64]]]]
[CODE(MIME)[[[Content-Disposition]]]]: [CODE(MIME)[[[attachment]]]]
[VAR[... Base64 で符号化した画像データ ...]]
--boundary
[CODE(MIME)[Content-Type]]: [CODE(MIME)[[[text/plain]]]];
[CODE(MIME)[[[charset]]]]=[CODE(charset)[[[ISO-2022-JP]]]]
どうですか? 素敵なところでしょう?
--boundary--
]PRE]
レンダリング例:
[PRE[
先日の旅行で撮った写真を送ります。 /+----+
<<< +-+ |
どうですか? 素敵なところでしょう? | 写真 |
+------+
]PRE]
[Q[写真]]の絵にマウス・ポインタを合わせると、
写真が表示されます。 [WEAK[(あくまで実現の一例です。)]]
[26] [[HTML]] の[[フォーム]]の[[提出]]の例:
[PRE(HTML)[
<[CODE(HTMLe)[[[form]]]] [CODE(HTMLa)[[[enctype]]]]="[CODE(MIME)[[[multipart/form-data]]]]">
<[CODE(HTMLe)[[[dl]]]]>
<[CODE(HTMLe)[[[dt]]]]>名前</[CODE(HTMLe)[dt]]>
<[CODE(HTMLe)[[[dd]]]]>
<[CODE(HTMLe)[[[input]]]] [CODE(HTMLa)[[[type]]]]="text"
[CODE(HTMLa)[[[name]]]]="usrname"
[CODE(HTMLa)[[[value]]]]="名無しさん" />
</[CODE(HTMLe)[dd]]>
<[CODE(HTMLe)[[[dt]]]]><[CODE(HTMLe)[input]] [CODE(HTMLa)[type]]="[[submit]]" /></[CODE(HTMLe)[dt]]>
</[CODE(HTMLe)[dl]]>
</[CODE(HTMLe)[form]]>
]PRE]
このフォームから提出すると:
[PRE(MIME)[
[CODE(MIME)[Content-Type]]: [CODE(MIME)[multipart/form-data]];
[CODE(MIME)[boundary]]="boundary"
--boundary
Content-Type: text/plain; charset=[CODE(charset)[ISO-2022-JP]]
Content-Disposition: [[form-data]]; [[name]]="usrname"
名無しさん
--boundary--
]PRE]
[61]
[PRE(HTTP example code)[
Content-Disposition: file; filename=name.suffix
]PRE]
([[HTTP]][[応答]])
;; 出典: [CITE[Lynx Users Guide v2.7.1]] <http://leb.net/blinux/blynx/Lynx_users_guide.html#19>
* 関連
[80] [[ダウンロード]]の動作を制御する[[プロトコル要素]]としては、
[CODE(HTTP)@en[[[X-MS-InvokeApp:]]]], [CODE(HTML)@en[[[DownloadOptions]]]],
[CODE(HTTP)@en[[[X-Download-Options:]]]], [CODE(HTML)@en[<[[a]] [[download]]>]] があります。
* メモ
[19] [CODE[Content-Disposition:]] 欄は、 HTTP でも (特に [[CGI]] script の類で) よく使われるにも拘らず、 HTTP Core 仕様書は簡単に触れるにとどまっています。 >>18 は RFC 2184 及び現実の使用状況・ HTTP の仕様をそれなりに折り合わせたもので、実装の指針としては (期限切れ I-D ながらも) 十分な品質だと思われます。
- [21] >>19 ただし、 >>20 のような問題には触れていませんから、もちろんこの I-D に従って実装すれば良いというものでもありません。
- [29] Referer とか「注目の WikiPage」ランキングみてると、実は [CODE[Content-Disposition]] 欄ってすごい人気ですね。やっぱり「[[HTTP]] で[[ダウンロード]]させる[[ファイル名]]を指定する方法」として有名だからかな?
- [31] >>29 [[とほほ]]とか [[CGI-ML]] とか [[Web相談室]]とかが普及に貢献してますから(w
- [32] それにしても、 HTTP 用のこの欄が標準化されないのはすごく謎。他の MIME 由来欄はちゃんと標準化してるのに。特にファイル名の非 ASCII 文字の問題 ([[encoded-word]] or [[RFC 2231]] or 生) という大問題があるから、 MIME 任せには出来ないと思うんだけど。 (2231 実装している HTTP UA なんてあるんだろうか?)
- [33] [WEAK[2003-08-29 11:41:24 +00:00]] ''[[attachment]]'': >>29 この WikiPage は [[Google]] で日本語11位にランクインしてますから(藁
[57]
<IW:Google:"Content-Disposition"> などで検索してみるとひどい状況。仕様書がひどくて実装もひどけりゃウェブの文書もひどくなるのは至極当然。
そうはいっても、 Google 上位サイトで仕様書を参照しているサイトはどれだけあります? 参照して無くても、読んだことがありそうな人が書いてる文書はどれだけあります? この分野全般について言えることですけど、わかりやすくて正しい解説書・解説サイトがほぼ皆無というのも問題かも。
([[名無しさん]] [WEAK[2005-01-19 08:48:15 +00:00]])
[59]
FirefoxはRFC 2231実装してますね。WinIE6やOpera8はしていませんが。
([[成瀬]] [WEAK[2005-05-22 08:58:59 +00:00]])
[62]
[CITE@ja[JVN#95019167: Internet Explorer における MHTML によるダウンロードのダイアログボックス回避の脆弱性]] ([CODE[2007-06-21 17:52:08 +09:00]] 版) <http://jvn.jp/jp/JVN%2395019167/index.html>
([[名無しさん]] [WEAK[2007-06-24 07:41:31 +00:00]])
[63]
[CITE@ja[JVN#27203006: Internet Explorer における MHTML により任意のスクリプトが実行される脆弱性]] ([CODE[2007-06-21 17:52:08 +09:00]] 版) <http://jvn.jp/jp/JVN%2327203006/index.html>
([[名無しさん]] [WEAK[2007-06-24 07:42:16 +00:00]])
[64]
[CITE[Test Cases for HTTP Content-Disposition header and RFC 2231/2047 Encoding]] ([TIME[2008-09-21 02:53:50 +09:00]] 版) <http://greenbytes.de/tech/tc2231/>
[66] [CITE@ja['''['''IE''']''' Content-Disposition: attachment でファイルをダウンロードするとフレームが更新されなくなる]] ([TIME[2009-02-03 20:38:10 +09:00]] 版) <http://support.microsoft.com/default.aspx?scid=kb;ja;418126>
[67] [CITE@en[RFC 5621 - Message Body Handling in the Session Initiation Protocol (SIP)]]
([TIME[2009-09-12 07:37:40 +09:00]] 版)
<http://tools.ietf.org/html/rfc5621#section-8>
[69] [CITE[Test Cases for HTTP Content-Disposition header field and the Encodings defined in RFC 2047/6266 and RFC 2231/5987]]
( ([TIME[2011-08-03 23:43:34 +09:00]] 版))
<http://greenbytes.de/tech/tc2231/>
[70] [CITE@en[RFC 6266 - Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)]]
( ([TIME[2012-03-02 10:21:42 +09:00]] 版))
<http://tools.ietf.org/html/rfc6266>
[71] [CITE[Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987]]
( ([TIME[2012-03-06 16:55:36 +09:00]] 版))
<http://greenbytes.de/tech/tc2231/>
[72] [CITE[Content-Disposition FireFoxとIEの挙動の違い - 開発者の談話室]]
( ([TIME[2010-07-29 15:43:38 +09:00]] 版))
<http://www.agile-tech.com/blogs/dev/2007/12/contentdisposition.html>
[73] [CITE@ja[日本語ファイル名]]
( ([TIME[2012-03-11 15:30:08 +09:00]] 版))
<http://oku.edu.mie-u.ac.jp/~okumura/php/filename.php>
[74] [CITE@en[Japanese: 日本語ファイル名をIEでダウンロードするときの文字化け対策]]
( ([TIME[2012-03-11 15:31:40 +09:00]] 版))
<http://moodle.org/mod/forum/discuss.php?d=72567>
[75] [CITE[日本語ファイル名の悩み (サイボウズ Office 開発ブログ)]]
( ([TIME[2008-09-10 10:02:13 +09:00]] 版))
<http://cydn.cybozu.co.jp/office/2008/07/post_1.html>
[76] [CITE[久しぶりの技術ネタ。HTTPレスポンスヘッダの''''''[''''''Content-Disposition'''''']''''''について、Safariでの日本語文字化け対策など。 - maachangの日記]]
( ([TIME[2012-03-11 15:37:35 +09:00]] 版))
<http://d.hatena.ne.jp/maachang/20110730/1312008966>
[77] [CITE[Example file]]
( ([TIME[2012-03-11 07:14:08 +09:00]] 版))
<http://suika.fam.cx/~wakaba/test/web/http/content-disposition/non-us-ascii-filename.cgi>
[78]
[PRE(HTTP example code)[
Content-Disposition: attachment; filename=%E4%B8%80%E4%B8%81; filename*=utf-8[SPAN[']]'%E4%B8%80%E4%B8%81
]PRE]
... のように [[UTF-8]] で[[符号化]]して[[パーセント符号化]]したのを直接指定するのと、
[[RFC 6265]] に従って [[UTF-8]] で[[符号化]]したのを、両方指定すると、 [[IE]]
を含む全 [[Webブラウザー]]でいい感じに[[復号]]してくれます。 [TIME[2012-03-11T08:25:10.600Z]]
[79] [CITE@en[RFC 4975 - The Message Session Relay Protocol (MSRP)]]
( ([TIME[2012-02-26 13:20:50 +09:00]] 版))
<http://tools.ietf.org/html/rfc4975#page-38>
[81] [CITE@en[RFC 5438 - Instant Message Disposition Notification (IMDN)]]
( ([TIME[2013-10-06 10:18:10 +09:00]] 版))
<http://tools.ietf.org/html/rfc5438#section-15.4>
[82] [CITE[IE9以降でもHTMLフォームでファイル名とファイルの中身を外部から指定できる | 徳丸浩の日記]]
( ([TIME[2014-01-30 01:06:48 +09:00]] 版))
<http://blog.tokumaru.org/2014/01/ie9html.html>
[83] [CITE@en[RFC 5621 - Message Body Handling in the Session Initiation Protocol (SIP)]]
( ([TIME[2014-06-09 06:12:50 +09:00]] 版))
<http://tools.ietf.org/html/rfc5621#section-8>