Вопрос проверяет понимание механизма ограничения частоты запросов для защиты API и серверов от перегрузок.
Rate limiting (ограничение частоты запросов) — это механизм, который устанавливает максимальное количество запросов, которое клиент может отправить к серверу за определённый период времени. Это критически важная практика для обеспечения стабильности и безопасности веб-сервисов.
const express = require('express');
const app = express();
// Простой in-memory rate limiter
const requestCounts = {};
const WINDOW_MS = 60000; // 1 минута
const MAX_REQUESTS = 10;
app.use((req, res, next) => {
const ip = req.ip;
const now = Date.now();
if (!requestCounts[ip]) {
requestCounts[ip] = [];
}
// Удаляем старые записи
requestCounts[ip] = requestCounts[ip].filter(ts => now - ts < WINDOW_MS);
if (requestCounts[ip].length >= MAX_REQUESTS) {
return res.status(429).json({ error: 'Too many requests' });
}
requestCounts[ip].push(now);
next();
});
app.get('/api', (req, res) => {
res.json({ message: 'Success' });
});
app.listen(3000);Rate limiting используется в публичных API (например, Twitter, GitHub), для защиты от брутфорс-атак на логин, в микросервисной архитектуре для предотвращения каскадных отказов, а также в CDN и балансировщиках нагрузки.
Вывод: Rate limiting — обязательный элемент любого production-сервиса, работающего с внешними запросами. Он помогает сохранить производительность, предотвратить злоупотребления и обеспечить предсказуемое поведение системы.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
Node.js
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию