非常に大きなHTTPリクエストと多数の小さなリクエスト 質問する

非常に大きなHTTPリクエストと多数の小さなリクエスト 質問する

サーバーからクライアントに送信する 2D 配列 (Json 形式) が必要です。サイズは約 400 x 400 で、各エントリは約 4 文字のテキストです。つまり、データは約 640 KB になります。

次の極端なアプローチのうち、どちらが優れているでしょうか?

  1. 一度にすべてのデータに対して大規模な HTTP リクエストを実行します。
  2. 400 回のリクエストを行い、それぞれ 1 行 (約 1.6 KB) を要求します。

最適なアプローチは中間くらいになると思います。このデータに対する最適な単一リクエスト サイズについて、何かアドバイスをいただけませんか?

ありがとう。

ベストアンサー1

1 つの大きなものを選択するか、複数の小さなものを選択するかについては、次の点を考慮してください。

  • 単一リクエストの場合、データが到着したときに段階的にデータ処理を行うことはできません。何かを行う前に、完全なパケットが到着するまで待つ必要があります。失敗した場合は、すべてを最初からやり直す必要があります。
  • 複数のリクエストの場合は、段階的なデータ処理を実行できます。ただし、複数の障害が発生する可能性と、そこから回復する方法を考慮する必要があります。
  • 複数のリクエストがあると、リクエストごとにオーバーヘッドが発生します。これは、アプリが消費する追加の帯域幅です。
  • 一部の HTTP エージェントでは、同じサーバーへの同時リクエスト数が制限されるため、これを回避するために何らかのロジックを実行する必要がある場合があります。
  • 応答圧縮は、単一のリクエストの場合により効果的に機能します。
  • 複数のリクエストに対して、データにメモリ全体を割り当てる必要はありません。確かに、640KB はそれほど大きなメモリではないので、割り当てる頻度によっては、それほど大きな考慮事項にはならないかもしれません。
  • プロセスが早期に終了した場合 (キャンセル ボタンまたはアプリが終了した場合、またはブラウザーがページから移動した場合)、単一のリクエストで完全な応答のダウンロードが完了します。ただし、複数のリクエストの場合、コードがまだ開始していないリクエストは実行されません。

正直なところ、最後の 2 つについてはそれほど心配しておらず、1) プログレッシブ データ処理が重要かどうか、2) アプリが障害や部分的なデータに対してどの程度許容できるかに基づいて選択することになります。

おすすめ記事