Лимитируйте по сценарию
Разные операции имеют разную стоимость и профиль трафика. Настраивайте отдельные пороги для входа, поиска, отправки формы и дорогих API-операций. Слишком общий лимит способен заблокировать нормальную работу всего сайта.
Выбирайте ключ и окно осознанно
IP-адрес удобен для анонимного трафика, но общий адрес может принадлежать многим людям, а распределённые запросы — идти с множества адресов. Для аутентифицированных запросов можно учитывать пользователя или приложение. Настройка должна быть согласована с доверенными прокси: нельзя безусловно доверять произвольному X-Forwarded-For.
Тестируйте короткие всплески и длительный поток, учитывайте распределённую инфраструктуру и синхронизацию счётчиков.
Возвращайте понятный сигнал
HTTP 429 Too Many Requests обозначает превышение допустимой частоты. При необходимости ответ может содержать Retry-After с временем, когда клиенту можно повторить запрос. Не раскрывайте внутренние пороги и детали реализации.
Метрики должны показывать частоту ответов 429, затронутые операции и эффект на легитимных пользователей. Начинайте с наблюдения или мягкой реакции, если это возможно, прежде чем вводить строгую блокировку.
Частые вопросы
Одинаковый ли лимит подходит всем endpoint?
Обычно нет: стоимость операции, доступность анонимным пользователям и ожидаемая частота запросов отличаются.
Что означает HTTP 429?
Сервер сообщает, что клиент отправил слишком много запросов за заданный период. Ответ может включать Retry-After, указывающий, как долго ждать перед повтором.