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.