メインコンテンツへ
短.be

レート制限

API やサービスへのリクエスト数を一定期間内で制限する仕組み。サーバー保護と公平な利用を実現する。

2026 年 8 月 23 日 / 約 1 分で読めます

セキュリティ

レート制限 (Rate Limiting) とは、API やサービスに対するリクエスト数を、一定の時間枠内で上限値に制限する仕組みです。「1 分間に 60 リクエストまで」「1 日に 1,000 リクエストまで」のように設定され、上限を超えたリクエストには HTTP 429 (Too Many Requests) が返されます。この 429 は RFC 6585 で定義されたステータスコードで、一定時間内のリクエストが多すぎることをクライアントに伝えます。

レート制限の目的は 3 つあります。第一にサーバー保護 (大量リクエストによるサービスダウンの防止)、第二に公平性の確保 (特定ユーザーによるリソースの独占防止)、第三にコスト管理 (クラウドサービスの従量課金を制御) です。

短縮 URL サービスでは、レート制限が複数の場面で適用されます。URL 短縮 API のリクエスト数制限 (スパム的な大量生成の防止)、短縮 URL へのアクセス数制限 (DDoS 攻撃の緩和)、管理画面へのログイン試行回数制限 (ブルートフォース攻撃の防止) などです。

レート制限のアルゴリズムには主に 4 種類あります。固定ウィンドウ (1 分ごとにカウンターをリセット)、スライディングウィンドウ (直近 1 分間のリクエスト数を常時計算)、トークンバケット (一定速度でトークンが補充され、リクエストごとにトークンを消費)、リーキーバケット (一定速度でリクエストを処理し、超過分をキューに蓄積) です。

API を利用する開発者がレート制限に対処するには、レスポンスヘッダーを確認して残量に応じてリクエスト頻度を調整する実装が必要です。残量を伝えるヘッダーの名前はサービスごとに異なり、X-RateLimit-Limit や X-RateLimit-Remaining といった名前が慣習的に使われてきました。標準のヘッダーは策定作業が進んでいる段階で、2026 年 8 月時点では Internet-Draft です。429 レスポンスを受けた場合は、Retry-After ヘッダーがあればその値に従って待機します。ヘッダーが無い場合や、待機して再送しても 429 が続く場合は、待機時間を段階的に伸ばす指数バックオフを併用します。この 2 つは別の手段で、Retry-After に従う待機がそのまま指数バックオフになるわけではありません。

この記事は役に立ちましたか?

関連用語

API レート制限

API へのリクエスト数を一定期間内に制限する仕組み。サービスの安定性確保と不正利用の防止に不可欠。

API キー

API へのアクセスを認証および制御するための文字列。利用者の識別とアクセス制限に使われる。

入力バリデーション

ユーザーからの入力データが期待する形式や範囲に合致するかを検証するプロセス。セキュリティ対策の 1 つ。

短縮 URL の悪用

短縮 URL サービスをフィッシング、マルウェア配布、スパムなどの不正目的に利用する行為。サービス提供者と利用者の双方に対策が求められる。

Webhook

特定のイベント発生時にサーバーから指定 URL へ自動的に HTTP リクエストを送信する仕組み。リアルタイム連携に活用される。

リダイレクトキャッシュ

ブラウザーや CDN がリダイレクト応答を一定期間保存し、再アクセス時にオリジンサーバーへの問い合わせを省略する仕組み。

関連記事

URL 短縮 API の使い方ガイド - プログラムからの短縮 URL 生成

URL 短縮サービスの API をプログラムから利用する方法を解説。リクエスト形式、レスポンス構造、実装例を紹介します。

短縮 URL のセキュリティガイド - 安全に利用するためのベストプラクティス

OWASP のリダイレクト脆弱性ガイドラインに基づく短縮 URL のセキュリティ対策を解説。フィッシング攻撃パターンや CSP ヘッダーとの関係も網羅します。

クリック詐欺 (クリックフラウド) の仕組みと対策 - 短縮 URL を守るセキュリティガイド

クリック詐欺の手口と短縮 URL への影響を解説。ボット検知、レートリミット、CAPTCHA など実践的な防御策と、不正クリックの検出方法を紹介します。

よくある質問

レート制限に引っかかったらどうすればいいですか?
HTTP 429 レスポンスの Retry-After ヘッダーを確認し、指定された時間だけ待機してからリトライしてください。Retry-After は待機秒数のほかに、再送可能になる日時の形式でも返せるため、両方の書式を読める実装にしておくと安全です。ヘッダーが付いていないこともあるので、その場合は待機時間を段階的に伸ばして再送します。自分の送信量が少ないのに制限に達するときは、制限を数える単位を確認してください。IP アドレス単位で数えるサービスでは、共有回線や社内ネットワークのように出口 IP が同じ利用者の分がまとめて数えられることがあります。頻繁に制限に達する場合は、リクエストの間隔を広げるか、上位プランへのアップグレードを検討しましょう。
レート制限はどのくらいの値が一般的ですか?
サービスによりますが、無料プランでは 1 分間に 10 〜 60 リクエスト、有料プランでは 1 分間に 100 〜 1,000 リクエスト程度が一般的です。短縮 URL サービスの API では、1 時間あたりの短縮回数に上限が設けられ、分単位の上限も併せて課されることがあります。具体的な値はサービスとプランで大きく変わるため、利用前に各サービスの API ドキュメントで確認してください。
自分の API にレート制限を実装するには?
Nginx の limit_req モジュール、API ゲートウェイ (AWS API Gateway など) の組み込み機能、Redis を使ったトークンバケットの自前実装などが一般的です。小規模なら Nginx の設定だけで十分対応できます。

知識を、実際のリンクで。

無料で URL を短縮する