Система ограничивает количество запросов от одного пользователя за определённое время. Это защита от перегрузки, DDoS-атак и злоупотреблений.
🔴 Пример из жизни
С Rate Limiting:
Банкомат
• 3 неправильных PIN-кода → карта заблокирована
• Защита от перебора
Без Rate Limiting:
Форма входа
• Бот перебирает пароли
• 10 000 попыток в минуту
• Рано или поздно угадает
🔴 Где проверять:
— API endpoints (есть ли лимит запросов)
— Формы входа (блокировка после N попыток)
— Отправка SMS/Email (защита от флуда)
— Кнопки создания заказов, платежей
🔤 Типичные баги
1. Ограничение только на фронте
Кнопка заблокирована в UI
Но через Postman запросы проходят
2. Блокировка всего офиса
Все за одним IP
Один превысил лимит → все заблокированы
3. Нет информации о лимитах
HTTP 429
Когда можно повторить? Неизвестно
🈁 Правильная реализация
GET /api/users
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 234
X-RateLimit-Reset: 1699999999
При превышении:
HTTP 429 Too Many Requests
Retry-After: 60
🧪 Как тестировать:
— Быстро кликать кнопку 10+ раз
— Написать скрипт на 150 запросов подряд
— Проверить HTTP 429 и заголовки ответа
— Убедиться, что счётчик сбрасывается
🐸 Библиотека тестировщика
#теория_на_пальцах
