Cos'è la limitazione della frequenza?
La limitazione della frequenza è un meccanismo di controllo usato dalle API cloud per regolare il numero di richieste che un utente può effettuare in un determinato intervallo di tempo. I produttori di API cloud usano la limitazione della frequenza per garantire che il flusso delle richieste non sovraccarici il servizio. La limitazione della frequenza imposta un limite per la velocità e il volume delle chiamate API, in genere definiti in termini di richieste per periodo di tempo.
Perché le API cloud usano la limitazione della frequenza
- Impedire l'overload. La limitazione della frequenza garantisce che il server API rimanga stabile e reattivo impedendo a qualsiasi singolo utente o servizio di inondarlo con troppe richieste.
- Garantire un utilizzo equo. La limitazione della frequenza applica criteri di utilizzo equi, assicurandosi che nessun singolo utente monopolizzi le risorse API, consentendo l'accesso equo a tutti gli utenti.
- Protezione. Consente di mitigare gli attacchi DDoS (Distributed Denial of Service) e altri comportamenti offensivi limitando il numero di richieste da origini potenzialmente dannose.
- Gestione costi. Per i provider di servizi cloud, la limitazione della velocità consente di gestire i costi operativi impedendo un uso imprevedibile o eccessivo delle risorse.
- Qualità del servizio. Impedendo picchi di traffico, la limitazione della frequenza garantisce una qualità coerente del servizio per tutti gli utenti.
Come si riscontra la limitazione della frequenza nelle app
Quando si compilano app che integrano le API cloud, controllare la relativa documentazione per verificare se supportano la limitazione della frequenza. In tal caso, si ricevono o X-RateLimit-...
si ricevono RateLimit-...
intestazioni di risposta con informazioni sui limiti di velocità. È possibile usare queste informazioni nell'applicazione per assicurarsi di non superare i limiti di frequenza dell'API. Ad esempio, l'intestazione RateLimit-Remaining
indica il numero di richieste rimanenti nella finestra corrente. Se si riceve una risposta con questa intestazione impostata su 0, si è certi di aver raggiunto il limite di velocità e di attendere la finestra successiva prima di inviare un'altra richiesta. L'intestazione RateLimit-Reset
indica l'ora in cui il limite di velocità viene reimpostato. Tenere presente che alcune API inviano solo le RateLimit-...
intestazioni dopo aver raggiunto una soglia, ad esempio quando si dispone del 10% delle richieste rimanenti.
Quando si supera il limite di velocità, l'API limita le richieste restituendo un codice di stato HTTP 429 (troppe richieste). Alcune API potrebbero anche inviare un'intestazione Retry-After
che indica il tempo necessario attendere prima di inviare un'altra richiesta.
Per evitare limitazioni e assicurarsi che l'applicazione rimanga reattiva, è necessario implementare la limitazione della frequenza nell'applicazione. A seconda dello stack di tecnologie, sono disponibili librerie diverse che consentono di gestire la limitazione della frequenza nell'applicazione. Dopo aver implementato la limitazione della frequenza nell'applicazione, verificare se gestisce correttamente la limitazione della frequenza.