- - PR -
HTTPマルチパートレスポンスについて
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-05 02:11
こんばんは。
Javaの話題というよりもHTTPの仕様に関する質問なのですが、サンプルコード をjspで作成する都合上ここに投稿させて頂きました。 Q.マルチパートレスポンスはHTTPの仕様上実現出来ないものなのでしょうか? 1つのリクエストに対して複数ファイルのダウンロードダイアログをレスポンス で返す、ファイルダウンロードをさせつつ画面遷移を行うなどの要件はそこそこ 発生しますが、HTTPの仕様上実現することは出来ないと今まで思っていました。 ただ、RFC2616のマルチパートタイプに関連する項目を眺めてみるとサポートし ないとは書かれておらず、むしろサポートすべきであると書かれているようにも 解釈出来てしまいます。 http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616#Sec3.7.2 ServletResponseクラスのjavadocにもマルチパートレスポンスを返す際の実装手段 が書かれており、サポートされてしかるべきなのでは? という疑問がますます沸いてきました。 http://www.jajakarta.org/tomcat/servletapi/servletapi-4.0/docs-ja/javax/servlet/ServletResponse.html ここで、実際にそれらしいコードを書いて動作確認を行ってみたところ、 FireFox,OperaではOK!しかしIEではNGとの結果が出てしまいます。
私の中では、HTTPの仕様上は実現出来てしかるべきだが、IEが実装を怠っている ために一般向けのサイトでは使用出来ない仕組みである。 との結論を出したいのですが、RFCの解釈にいまいち(かなり)自信が持てません。 かなり長い間考えて、もやもやした状態が続いているので、 あってるよ!ここの解釈が間違っているよ!などのご意見を頂けたら嬉しいです。 ちなみにJavaScript等を使用した実現方法が知りたいのではなく、 HTTPの仕様の解釈があっているか間違っているかが質問内容となります。 | ||||||||||||||||
|
投稿日時: 2005-08-05 09:53
IEではNGということですが、どのような状態がNGなんでしょうか?
MIMEエージェントと同じように動作したほうがいいけど、わからないなら multipart/mixedがきたものとして扱えってことだから、multipartを サポートしてないIEだとPlainText扱いになるのが正常動作かな? #rfcはMUSTだけが最低条件かと | ||||||||||||||||
|
投稿日時: 2005-08-05 18:28
こんにちは。
回答ありがとうございます。
なるほどなるほど。SHOULDまでは満たされる必要があると誤解して おりました。ちなみに一般的に「仕様としてサポートされている」 といえる基準はどこまでのレベルが入るのでしょうか? MUSTだけなのかな?
「NG」は表現の仕方が悪かったです。ファイルをダウンロードしつ つ画面遷移を行ってくれないという意味で記載しました。
さてさて、
のご回答で一度は納得したのですが、以下のような動きをする為に更なる 疑問が生まれてしまいました。 IEではPlainText扱いとなって、ブラウザに--BOUNDARY以下の文字列がその まま表示されます。 ただよく分からないのが「multipart/hoge」のような存在しないサブタイプ を指定した場合はjspまるごとのダウンロードダイアログが出現するのですが、 「multipart/mixed」を指定した場合には上記のようにPlainText扱いとして 動作しています。 この動作は 「わからないならmultipart/mixedがきたものとして扱え」 に矛盾しているようにも思えますし、multipart/mixedのタイプを認識して いるようにも思えるのです。認識したならばPlainText扱いはおかしいよう な気がするのですが真相はいったいどうなっているのでしょうか・・・? |
1