HTTPQUERY
Bahasa Indonesia

Origin

Penggunaan

Browser melampirkan header Origin pada permintaan lintas origin dan pada permintaan same-origin yang dipicu oleh metode atau API tertentu. Header ini mengidentifikasi asal permintaan tersebut, sehingga memberi server informasi yang dibutuhkan untuk menegakkan kebijakan kontrol akses.

Header ini muncul pada semua permintaan CORS (termasuk preflight), pengiriman formulir menggunakan POST, serta permintaan yang diinisiasi oleh Fetch API atau XMLHttpRequest. Browser tidak menyertakan header ini pada permintaan navigasi GET atau HEAD yang same-origin.

Tidak seperti header Referer, Origin tidak pernah menyertakan path maupun query string, sehingga nilainya lebih menjaga privasi. Header Sec-Fetch-Site memberikan sinyal pelengkap dengan mengklasifikasikan permintaan sebagai same-origin, same-site, cross-site, atau none.

scheme://host:port

Origin lengkap yang terdiri atas protokol, hostname, dan port. Port dihilangkan ketika protokolnya menggunakan port bawaan (80 untuk HTTP, 443 untuk HTTPS).

Origin: https://example.com
Origin: https://api.example.re:8443

null

Dikirim ketika origin bersifat sensitif terhadap privasi atau opak. Iframe yang di-sandbox, URL data:, dan redirect lintas origin menghasilkan nilai null.

Origin: null

Catatan

Server yang mengandalkan null untuk kontrol akses menciptakan celah keamanan. Beberapa konteks yang tidak saling berkaitan berbagi origin null yang sama, sehingga memercayai nilai tersebut berarti memberi akses kepada semuanya.

Contoh

Permintaan POST lintas origin dari sebuah aplikasi front-end menyertakan header Origin agar server memverifikasi pemanggilnya sebelum mengembalikan respons yang mengaktifkan CORS.

Permintaan

POST /api/orders HTTP/1.1
Host: api.example.re
Origin: https://shop.example.re
Content-Type: application/json

Respons

HTTP/1.1 201 Created
Access-Control-Allow-Origin: https://shop.example.re
Vary: Origin

Permintaan preflight OPTIONS membawa origin bersama metode dan header yang dimaksudkan.

Permintaan

OPTIONS /api/orders HTTP/1.1
Host: api.example.re
Origin: https://shop.example.re
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type