クライアントが少し待ってからリクエストを再試行する場合、サーバーが送信するのに最適な HTTP 応答コードは何ですか?
現在、私は使用しています:
409 Conflict
でも、これがちょっともったいない気がする…。
クライアントが少し待ってからリクエストを再試行する場合、サーバーが送信するのに最適な HTTP 応答コードは何ですか?
現在、私は使用しています:
409 Conflict
でも、これがちょっともったいない気がする…。
待機させる理由に応じて、ステータス コードは異なります。4 で始まるコードは、クライアント エラーを示します。リクエストが適切に行われた場合、400 コードは使用しません。5 で始まるステータスはサーバー エラーです。あなたの側に問題があるために HTTP リクエスターに待機を求める場合は、503 を使用します。
ファイルの処理が終了したかどうかを確認する Web サービスを作成するときに、この問題に遭遇しました。それができれば。200 を返しますが、そうでない場合はエラー コードを表示したくありません。2 (成功) で始まるコードを使用する方が適切です。この場合、最適な標準コードはおそらく "202 Accepted" です。HTTP 仕様では次のように説明されています。
リクエストは処理のために受け入れられましたが、処理は完了していません。
HTTP RFC で推奨されている 503 + "retry-after" ヘッダーを使用できます - https://www.rfc-editor.org/rfc/rfc2616#section-10.5.4。
レート制限スキームを実装しようとしていると仮定すると、2 つのオプションが思い浮かびます (そうでない場合は、Alexei の提案の方が適切かもしれません)。
429 ステータス コードは、ユーザーが一定時間内に送信したリクエストが多すぎることを示します (「レート制限」)。
応答表現には、状態を説明する詳細を含める必要があり (SHOULD)、新しい要求を行う前に待機する時間を示す Retry-After ヘッダーを含めることができます (MAY)。
レートが制限されている場合に、バージョン 1 の Search および Trends API によって返されます。