Sobes.tech
Back to questions
Middle
2

Что такое rate limiting и как его реализовать?

Companies where asked
TokenTech

Answer from AI

sobes.tech AI

Rate limiting — это механизм ограничения количества запросов, которые клиент может отправить к серверу за определённый промежуток времени. Это помогает защитить сервер от перегрузок и злоупотреблений.

Реализация может быть на стороне сервера или клиента. На фронтенде часто делают простую защиту, например, блокируя повторные нажатия кнопок или ограничивая частоту вызовов API.

Пример простой реализации на JavaScript с использованием таймера:

let lastRequestTime = 0;
const RATE_LIMIT_INTERVAL = 1000; // 1 секунда

function sendRequest() {
  const now = Date.now();
  if (now - lastRequestTime < RATE_LIMIT_INTERVAL) {
    console.log('Слишком часто! Подождите немного.');
    return;
  }
  lastRequestTime = now;
  // отправляем запрос
  fetch('/api/data')
    .then(response => response.json())
    .then(data => console.log(data));
}

Для более сложных случаев используют библиотеки или реализуют rate limiting на сервере с помощью Redis, токенов или счётчиков.