Middle
Τι είναι ο περιορισμός ρυθμού και πώς υλοποιείται;
sobes.tech AI
Απάντηση από AI
Ο περιορισμός ρυθμού (rate limiting) είναι ένας μηχανισμός που περιορίζει τον αριθμό των αιτημάτων που ένας πελάτης μπορεί να στείλει στον διακομιστή σε μια καθορισμένη χρονική περίοδο. Αυτό βοηθά στην προστασία του διακομιστή από υπερφόρτωση και κακομεταχείριση.
Η υλοποίηση μπορεί να γίνει είτε στην πλευρά του διακομιστή είτε στην πλευρά του πελάτη. Στο frontend, συχνά εφαρμόζεται απλός προστατευτικός μηχανισμός, όπως το μπλοκάρισμα επαναλαμβανόμενων κλικ ή ο περιορισμός της συχνότητας των κλήσεων 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));
}
Για πιο πολύπλοκες περιπτώσεις, χρησιμοποιούνται βιβλιοθήκες ή υλοποιείται ο περιορισμός ρυθμού στον διακομιστή με Redis, tokens ή μετρητές.