4

認証に PHP プロキシを使用して、Apache / Nginx 経由で MP4 ファイルをストリーミングしようとしています。http://mobiforge.com/developing/story/content-delivery-mobile-devicesで概説されているように、iOS 用にストリーミングするバイト範囲を実装しました。これは Chrome と Safari では問題なく動作しますが、....本当に奇妙なことは、php ページへのサーバー リクエストを監視すると、ブラウザでのページ ロードごとに 3 つのリクエストが発生することです。これは Chrome のインスペクタのスクリーン ショットです (PHP プロキシ ページに直接移動します)。

クロームインスペクター

ご覧のとおり、1 つ目はキャンセルされ、2 つ目は保留のままになり、3 つ目は動作します。再び、ファイルがブラウザで再生されます。ファイルを読み取る別の方法 (readfile、fgets、fread など) を試しましたが、同じ結果が得られました。これら 3 つのリクエストの原因は何ですか? また、1 つの有効なリクエストを取得するにはどうすればよいですか?

4

2 に答える 2

2

最初の要求は、最初のバイト範囲に対するもので、ファイルをプリロードします。ブラウザーは、指定された量をダウンロードすると、要求をキャンセルします。

2つ目はよくわからない…

3 つ目は、実際にメディア ファイルの再生を開始すると、完全なものが要求され、ダウンロードされます。

于 2012-10-05T16:50:18.920 に答える
1

これがあなたの質問に答えるかどうかはわかりませんが、PHPで大きなバイナリファイルを提供することは正しいことではありません。

PHPに認証のみを処理させ、ファイル参照をWebサーバーに渡して提供し、リソースを解放することをお勧めします。

参照:PHPによって動的に作成された場合のHTTP応答のキャッシュ

それは私がすることをお勧めすることをより詳細に説明しています。

于 2012-10-05T16:41:10.920 に答える