【れーとりみっと】
レートリミット とは?
💡 「1分間に何回まで」とルールを決めてアクセスを絞る門番
📌 このページのポイント
レートリミットって何で必要なの?
超えると何が起きるの?
HTTPのステータスコード429(Too Many Requests)が返ってくるよ。だいたい `Retry-After` というヘッダーで「○秒後に再試行してね」という情報も一緒に返されることが多いんだ。
カウントの単位ってどうやって決めるの?
トークンバケットとかスライディングウィンドウって何が違うの?
これはアルゴリズムの話で、実は実装によって挙動がかなり違うんだ。固定ウィンドウ方式(例「1分間に100回」)は実装が簡単だけど、ウィンドウの切り替わり直前に集中的にアクセスされると実質2倍のリクエストが通ってしまう問題がある。スライディングウィンドウは過去60秒を常に見るので公平だけどメモリを多く使う。トークンバケットはバケツにトークンが一定速度で補充されて、リクエストごとに消費する方式でバーストアクセスをある程度許容できる。どのアルゴリズムを選ぶかで「バーストに強いか・公平か・実装コストか」がトレードオフになるよ。
まとめ:ざっくりこれだけ覚えればOK!
「レートリミット」って出てきたら「一定時間に送れるリクエスト数を制限してサーバーを守る仕組みだな」と思えばだいたいOK!
📖 おまけ:英語の意味
「Rate Limiting」 = レート(頻度)の制限
💬 「Rate」は「速度・頻度」の意味。リクエストの頻度に上限を設けることで過剰なアクセスを制御するよ