質問

multipart / mixedを使用してHTTPレスポンスを作成したいのですが、どのブラウザがそれをサポートしているかわかりません。そして、それが聞こえるのと同じくらい便利であれば、クライアントの観点から。 正直に言うと、そのコンテンツタイプは特に必要ありません。同じ応答で複数のファイルを送信したいだけです。別のコンテンツタイプがより使用されている可能性があります。

役に立ちましたか?

解決

自家製のサーバーと簡単な応答でテストしました。ブラウザーが100%OKを理解していないため、応答が整形式かどうかはわかりません。しかし、結果は次のとおりです。

  • Firefox 67.0.1(64ビット):最後の部分のみをレンダリングし、他の部分は無視します。
  • IE 11.503 :すべてのコンテンツを1つのファイル(境界を含む)に保存します。何もレンダリングされません。
  • Chrome 2019年:すべてのコンテンツを1つのファイルに保存します。何もレンダリングされません。
  • Safari 4 :すべてのコンテンツを1つのファイルに保存します。何もレンダリングされません。
  • Opera 10.10 :奇妙な何か。最初の部分のプレーン/テキストとしてのレンダリングを開始し、すべてをクリアします。ロードの進行状況バーが31%でハングします。

完全な応答を次に示します。誰かがエラーを見つけた場合は、教えてください。もう一度やり直します:

HTTP/1.1 200 OK
Date: Tue, 01 Dec 2009 23:27:30 GMT
Vary: Accept-Encoding,User-Agent
Content-Length: 681
Content-Type: Multipart/mixed; boundary="sample_boundary";

Multipart not supported :(
--sample_boundary
Content-Type: text/css; charset=utf-8
Content-Location: http://localhost:2080/file.css

body
{
 background-color: yellow;
}
--sample_boundary
Content-Type: application/x-javascript; charset=utf-8
Content-Location: http://localhost:2080/file.js

alert("Hello from a javascript!!!");

--sample_boundary
Content-Type: text/html; charset=utf-8
Content-Base: http://localhost:2080/

<html>
<head>
    <link rel="stylesheet" href="http://localhost:2080/file.css">
</head>
<body>
 Hello from a html
    <script type="text/javascript" src="http://localhost:2080/file.js"></script>
</body>
</html>
--sample_boundary--

他のヒント

私の経験では、マルチパート応答はFirefoxで機能しますが、Internet Explorerでは機能しません。これは2年前で、当時のブラウザを使用していました。

JPEG画像のストリームに対して動作するHTTPマルチパート応答がありました。たとえば、Axis IPカメラはFirefoxのモーションJPEGストリームに使用します。 Internet Explorerの場合、Axisにはプラグインの使用が必要です。

Firefoxのみのサポートが要件を満たしている場合、マルチパートレスポンスの各パートにcontent-lengthヘッダーを設定することをお勧めします。元のHTTPヘッダーとマルチパート応答で境界文字列を同一にすることが役立つ場合があります(HTTPヘッダーに「-」がありません)。

2つのアイデア:

  1. フォーマット:&quot; multipart&quot;と思う小文字である必要があり、Content-typeヘッダーの最後にセミコロンが必要だとは思わない(違いが生じるかどうかは疑わしいが、そうなる可能性がある)。
  2. 置換モードを試しましたか? Content-type:multipart / x-mixed-replace を使用するだけです。他のすべては同じままにしてください。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top