2016-11-16 4 views
0

いくつかの操作を行い、長いJSONを返すGET APIがあります(応答サイズの合計は1 MBと仮定します)。休憩POST ApiはGet Apiのようなブラウザで自動的に再試行しますか?

クライアントがGET APIをリクエストすると、このAPIは操作を実行するのに約5分かかりました。しかしブラウザは2分後にGET APIを再試行します。

私が投稿する取得APIを変更した場合は私の質問は

  1. されているので、ブラウザは文句を言わないの要求権を再試行してください?
  2. ポストApiのタイムアウト動作もGET Apiと同じですか?
  3. POST API応答で送信するレスポンスサイズの制限はありますか?

注:私は私がすることによって行われ、リトライを知らない

一時的にポストのAPIが正しいものではありません、私たちは周りにこの仕事をしている事前

+1

私は、巨大なデータの処理と処理に関してアプリケーション設計を改善することをお勧めします。私はあなたがブラウザのタイムアウトを無効にすることができるかどうかはわかりませんが、たとえできても120秒以上に設定することをお勧めしません。 – user2004685

答えて

2
  1. に感謝を知っていますブラウザ。クライアント側のライブラリか、クライアントとサーバーの間のプロキシで、再試行しているのでしょうか? GETは、情報(RFC 2616)を検索することを意味します。それは安全でなければなりません。(RFC 2616)。したがって、2番目のGETはダメージを引き起こさないことが期待できます。これはPOSTでは該当しません。したがって、POSTを使用している場合、HTTPエージェントが再試行しないことを期待できます。
  2. 回答を得るために再試行がどこから来るかを知る必要があります。
  3. 私はそうは思わない、聞いたことがない。リクエストは別の問題かもしれません。

このような長時間実行されるリクエストは、さらなる問題に直面する可能性があることに注意する必要があります。ある企業のファイアウォールは、例えば、何も活動していない時間の後にTCP接続を閉じることができます。非同期処理は考慮する価値があります。私は結果をサーバーに保存し、クライアントが後で要求でそれを取得できるようにします。これはまた、刺激されたユーザを避ける。あなたが何度も何度も何度もクリックする(人が再試行する)ためにクリックすると、サーバーが遅くなる可能性があります。

ところで、サーバー上で圧縮を設定すると、通常、JSONの場合にメッセージのペイロードがかなり減少します。

関連する問題