2016-10-27 8 views
0

httpサーバがビット単位でデータに応答できますか?「範囲」要求に応答しないでください。HTTPは、 "Range"レスポンス/リクエストではなく、ストリーミングされたレスポンスを送信できますか?

たとえば、テキストデータをクライアントに連続してストリームしたいとします.1つのhttp要求の結果としてクライアントによって受信されるテキストデータのほとんどないHTTPストリームです。

「Accept-Range」ヘッダーを送信したことに応じて、クライアントから「Range」リクエストが送信されなくても、これを実行できますか?

code examples of servers streaming data back to clientsが表示されますが、クライアントは範囲ヘッダーを送信していますか?

答えて

1

範囲要求は、リソースの特定の範囲のバイトを要求します。要求が妥当な時間内に終了することを期待しても安全です。しかし、通常のリクエストで接続を閉じる/終了することなく、サーバーからデータをプッシュすることを止めるものはありません。これは、要求が長時間かかることを意味し、サーバー上のリソースを無駄にする可能性があります。

「長いポーリング」と呼ばれることがあります。特に、接続がアイドル(ただしまだ生きている)の場合は、サーバーで何か起きたときにのみデータを送信します。例として、Webベースのチャットがありますが、これらの現代ではWebソケットがHTTPよりも適しています。

+0

フィードバックありがとうございます!だから、人々は[StreamedResponse](http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/StreamingOutput.html)を使ってサーバーからデータをストリーミングすることができますが、それは単なる便宜ですクライアントが原則的な応答を要求していない限り、サーバはその範囲で応答していません。 サーバーが応答している長いポーリングリクエストでも、クライアントが範囲を要求していない場合、StreamingOutputは実際にクライアントの観点からストリーミングしていませんか? –

+1

いいえ、全範囲のものを忘れてください(または、もっと知りたい場合はそれを読んでください)。 – Kayaman

+0

クール...ありがとう! –

関連する問題