Logo AnabisolutionsAnabisolutions
Aplikasi web

Rate limiting dasar untuk API web: algoritma dan cara menerapkannya

ABTim AnabisolutionsAnalog Bina Solutions2 menit baca
Rate limiting dasar untuk API web: algoritma dan cara menerapkannya

Rate limiting membatasi jumlah permintaan yang boleh dikirim klien dalam jangka waktu tertentu. Tujuannya melindungi server dari penyalahgunaan, serangan brute force, dan lonjakan beban. Server yang melampaui batas sebaiknya membalas dengan status 429 beserta header Retry-After.

Apa itu rate limiting dan kenapa penting?

Rate limiting adalah kontrol yang menolak permintaan berlebih dari satu klien. Tanpanya, bot atau skrip yang salah tulis bisa menghabiskan sumber daya server sehingga pengguna lain terdampak.

  • Mencegah tebakan kata sandi pada endpoint login.
  • Melindungi endpoint mahal seperti pencarian atau ekspor laporan.
  • Menjaga keadilan pemakaian antar pelanggan.
  • Mengendalikan biaya jika API memanggil layanan berbayar.

Algoritma apa yang umum dipakai?

Tiga pendekatan paling lazim adalah fixed window, sliding window, dan token bucket. Fixed window paling sederhana, tetapi bisa menerima dua kali lipat batas di pergantian jendela waktu.

  • Fixed window: hitung permintaan per menit, mudah tetapi kasar.
  • Sliding window: jendela bergeser sehingga lebih adil.
  • Token bucket: ember token yang terisi ulang, mengizinkan lonjakan singkat.

Gunakan status 429

RFC 6585 mendefinisikan kode 429 Too Many Requests. Sertakan header Retry-After agar klien tahu kapan boleh mencoba lagi.

Cara menerapkannya

Terapkan batas di lapisan terdepan, misalnya API gateway atau reverse proxy, lalu tambahkan batas khusus per endpoint di aplikasi. Simpan hitungan di penyimpanan cepat seperti Redis agar konsisten antar server.

  • Tentukan identitas pembatas: alamat IP, kunci API, atau ID pengguna.
  • Tetapkan batas awal yang longgar lalu perketat berdasarkan data.
  • Beri batas lebih ketat pada login dan reset kata sandi.
  • Dokumentasikan batas agar klien yang sah bisa menyesuaikan.

Ringkasan dan langkah berikutnya

Mulai dari endpoint yang paling sensitif, ukur trafik normal, lalu tetapkan batas sedikit di atas pemakaian wajar.

  • Kode status: 429 Too Many Requests.
  • Header penting: Retry-After.
  • Penyimpanan hitungan: Redis atau sejenisnya.
  • Rujukan: RFC 6585 di rfc-editor.org.

Topik terkait yang bisa Anda baca berikutnya: rate limit untuk API AI, webhook yang andal, pagination API, dan OWASP Top 10.

Kesalahan yang perlu dihindari

Jangan membatasi berdasarkan IP saja jika banyak pengguna berbagi satu IP kantor. Jangan pula membalas dengan pesan galat yang membuka detail internal. Pastikan batas tidak memblokir pemantau uptime dan webhook yang sah.

Pertanyaan singkat seputar topik ini

Kode status apa untuk permintaan yang melebihi batas?

Gunakan 429 Too Many Requests, didefinisikan dalam RFC 6585, disertai header Retry-After.

Algoritma rate limiting mana yang paling umum?

Fixed window, sliding window, dan token bucket. Token bucket populer karena mengizinkan lonjakan singkat tetapi tetap membatasi rata-rata.

Mau kami bantu menimbang?Ceritakan alur Anda, kami beri pendapat jujur dalam 1×24 jam kerja.
Konsultasi gratis

Pertanyaan yang sering muncul

Ya, tanpa komitmen. Kami balas dalam 1×24 jam kerja.

Suka artikel ini?
AB

Tentang Tim AnabisolutionsStudio digital dari Pekanbaru yang mengerjakan website, aplikasi, dan sistem untuk klien di Riau dan sekitarnya.

Topik:Rate limitingAPIKeamanan

Artikel menarik lainnya

Apa kata klien kami

Sangat profesional. Hasilnya melebihi ekspektasi dan komunikasi selama proyek lancar.
Logo LelangbankBudi SantosoPlatform lelang, Lelangbank
Tim yang kompeten. Custom plugin WordPress-nya pas sekali dengan kebutuhan kami.
Logo Ruang Multi TalentSarah WijayaSitus lembaga pelatihan, Ruang Multi Talent
Kualitas kode bersih dan support after sales luar biasa. Pasti kembali lagi.
Logo QuipworkAhmad RahmanDashboard internal, Quipwork

Punya masalah serupa? Ceritakan.

Konsultasi awal gratis dan tanpa komitmen. Kami balas dalam 1×24 jam kerja.

hello@anabisolutions.comJalan Nurul Yaqin No. 1, Pekanbaru, Riau, Indonesia
Chat via WhatsApp

Mulai dari satu pesan

Gratis dan tanpa komitmen.

Anda butuh apa?
Kami balas dalam 1×24 jam kerja.

Situs ini dilindungi reCAPTCHA dan berlaku Kebijakan Privasi serta Persyaratan Layanan Google.