web-dev-qa-db-ja.com

ボットに429または503ステータスコードを返す必要がありますか?

過剰なボットをブロックするための作業を行っています。 IPに基づいてリクエストを調整しています。過去に、IISを使用して、503エラーをクライアントに返しました。 429がより適切であると誰かが提案しました。私はどちらを使用するべきか、そしてその理由を理解しようとしています。このサイトで429を検索したところ、何も見つかりませんでした。

私はこれらを見つけました HTTPステータスコードの定義 ウィキペディアで:

429リクエストが多すぎますユーザーが一定時間内に送信したリクエストが多すぎます。レート制限スキームでの使用を目的としています。

503 Service Unavailableサーバーは現在使用できません(メンテナンスのために過負荷またはダウンしているため)。通常、これは一時的な状態です。

429は、問題のあるボットにサービスを提供するのにより適しているようです。これは正しいです?

5
Evik James
  • 503 Unavailableは、すべてのユーザーを対象としています(XYZのダウンタイム)。
  • 429あまりにも多くのスレッド(要求)を要求するユーザーおよびマシンを対象としています。

ステータス429を使用する必要があります。これは、そのユーザー向けであり、他のユーザーが影響を受けない可能性があることを意味するためです。さらに、IPアドレスのブロックは、通常は一時的なブロックに関連付けられているのに対して、IPアドレスが禁止されていることを意味するため、403 Forbiddenの方が良好なステータスになります。したがって、ユーザーを合法化したくないため、一時的な問題として大量のデータを要求するマシンではステータス429を使用する必要があります。

3
Simon Hayter