Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

HTTP dan API Web

Pelajaran 15 dari 16

Autentikasi, cache, CORS, dan galat

CORS, rate limit, dan mencoba ulang

Setelah pelajaran ini kamu bisa menentukan apakah dua URL satu origin, menjelaskan galat CORS, dan menghitung jeda coba ulang dari Retry-After.

±13 menitDiperiksa 28 Sep 2026

Materi

Origin sebuah URL adalah gabungan skema, host, dan port. Menurut MDN, peramban menerapkan kebijakan same-origin pada fetch dan XMLHttpRequest: skrip hanya boleh membaca respons dari origin tempat halamannya dimuat, kecuali respons dari origin lain membawa header CORS yang mengizinkannya, seperti Access-Control-Allow-Origin. Untuk permintaan yang bisa mengubah data, misalnya selain GET atau POST dengan jenis media tertentu, peramban lebih dulu mengirim permintaan preflight dengan metode OPTIONS.

CORS ditegakkan peramban. Program di server atau curl di terminal tidak terkena aturan itu, sehingga alamat yang gagal dari skrip halaman bisa berhasil dari terminal. Galat CORS hanya bisa diperbaiki di server yang dituju, dan MDN mencatat detailnya tidak diberikan ke JavaScript; penjelasannya hanya tampil di konsol peramban.

// Halaman di https://resep.example memanggil:
// https://resep.example/api/menu        -> origin sama
// https://api.resep.example/menu        -> origin lain (host beda)
// http://resep.example/api/menu         -> origin lain (skema beda)
// https://resep.example:8443/api/menu   -> origin lain (port beda)

Rate limit adalah batas banyak permintaan dari satu klien dalam rentang waktu tertentu. Klien yang melewatinya dijawab 429 Too Many Requests (RFC 6585), yang boleh membawa header Retry-After. 503 juga boleh membawanya. Nilai Retry-After berupa jumlah detik, misalnya Retry-After: 120 yang berarti dua menit, atau sebuah tanggal HTTP. Klien menunggu selama itu sebelum mencoba lagi, dan hanya mengulang otomatis permintaan yang idempoten.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 2 dari 3

Skrip di https://toko.example memanggil https://api.pembayaran.example dan gagal dengan galat CORS, padahal curl dari terminal ke alamat yang sama berhasil. Apa penjelasannya?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke