← Semua artikel

Apa Itu HTTP Header? Fungsi Host, Referer, User-Agent & Lainnya

Diperbarui 29 Oct 2026

Ketika browser membuka sebuah website, yang dikirim bukan hanya alamat URL. Di dalam request terdapat informasi tambahan seperti domain tujuan, jenis content yang dapat diterima, credential, cookie, bahasa, sampai informasi mengenai software yang mengirim request.

Informasi tambahan tersebut sebagian besar dikirim menggunakan HTTP header.

Server juga membalas menggunakan header. Response header dapat memberi tahu browser jenis content yang dikirim, aturan caching, cookie baru, lokasi redirect, sampai bagaimana browser sebaiknya memperlakukan response tersebut.

Karena itu HTTP header sangat penting ketika melakukan debugging website, API, web scraping, CDN, reverse proxy, forward proxy, authentication, caching, dan berbagai sistem berbasis HTTP lainnya.

Kalau sebelumnya kamu sudah membaca artikel HTTP Status Code, HTTP header adalah bagian berikutnya yang sangat penting untuk memahami isi request dan response secara lebih lengkap.

Apa Itu HTTP Header?

HTTP header adalah field berupa pasangan nama dan nilai yang membawa informasi tambahan mengenai sebuah HTTP request atau response.

Contoh:

Host: example.com User-Agent: Mozilla/5.0 Accept: text/html

Setiap baris mempunyai:

Nama-Header: Nilai

Contohnya:

Content-Type: application/json

Content-Type adalah nama field, sedangkan application/json adalah nilainya.

Di Mana HTTP Header Berada?

Secara sederhana sebuah HTTP request dapat digambarkan seperti:

GET /products HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 Accept: text/html Cookie: session=abc123 [body jika ada]

Header berada setelah request line dan sebelum body.

Pada response:

HTTP/1.1 200 OK Content-Type: text/html Cache-Control: max-age=3600 Content-Length: 5421 <html>...</html>

Request Header vs Response Header

HTTP header dapat muncul pada request maupun response.

Jenis Dikirim Oleh Contoh
Request Header Client → Server Host, User-Agent, Accept, Authorization, Cookie
Response Header Server → Client Content-Type, Cache-Control, Set-Cookie, Location

Beberapa field juga mempunyai semantics yang bisa digunakan pada konteks lebih luas.

Contoh HTTP Request Lengkap

GET /artikel HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 Accept: text/html Accept-Language: id-ID,id;q=0.9,en;q=0.8 Referer: https://google.com/ Connection: keep-alive

Dari header tersebut server dapat mengetahui beberapa konteks request sebelum menentukan response.

Apa Fungsi Host Header?

Host menunjukkan hostname tujuan request.

Host: gudangproxy.com

Header ini penting karena satu server atau satu alamat IP dapat menjalankan banyak website sekaligus.

Misalnya:

203.0.113.10 → site-a.com → site-b.com → site-c.com

Server dapat menggunakan hostname request untuk menentukan virtual host mana yang harus menangani request.

Host Bisa Menyertakan Port

Contohnya:

Host: example.com:8080

Ini menunjukkan hostname sekaligus port tujuan.

MDN mendefinisikan Host sebagai header yang menentukan domain server dan secara opsional port TCP yang digunakan. :chatgpt-content-reference{index="1"}

Apa Fungsi User-Agent?

User-Agent adalah header yang memberi informasi mengenai software client yang membuat request.

Contoh browser:

User-Agent: Mozilla/5.0 ... Chrome/...

Server dapat menggunakan informasi tersebut untuk berbagai keperluan seperti:

  • compatibility,
  • analytics,
  • debugging,
  • feature handling,
  • deteksi client tertentu.

MDN menjelaskan User-Agent sebagai string yang membantu peer network mengenali jenis aplikasi, sistem operasi, vendor, atau versi software client. :chatgpt-content-reference{index="2"}

User-Agent bukan identitas pasti seseorang. Nilainya merupakan informasi yang dikirim client dan dapat berbeda tergantung browser, aplikasi, atau konfigurasi.

Apakah User-Agent Menentukan IP?

Tidak.

IP address berasal dari koneksi jaringan.

User-Agent adalah metadata pada HTTP request.

Data Layer/Konteks
IP Address Network
User-Agent HTTP Header

Proxy dapat mengubah IP yang terlihat website tanpa otomatis mengubah User-Agent browser.

Apa Fungsi Referer?

Referer dapat menunjukkan halaman sebelumnya yang menjadi sumber navigasi menuju halaman saat ini.

Contohnya pengguna membuka link dari:

https://example-a.com/article

menuju:

https://example-b.com/product

request dapat membawa:

Referer: https://example-a.com/article

MDN menjelaskan Referer sebagai alamat halaman sebelumnya tempat link menuju resource saat ini diikuti. :chatgpt-content-reference{index="3"}

Kenapa Namanya Referer, Bukan Referrer?

Nama header HTTP historis memang menggunakan:

Referer

dengan satu huruf “r” setelah refe.

Sedangkan istilah bahasa Inggris yang benar adalah:

Referrer

Karena alasan kompatibilitas, nama header tetap dipertahankan sebagai Referer.

Apakah Referer Selalu Dikirim?

Tidak.

Informasi referer dapat dibatasi berdasarkan:

  • Referrer-Policy,
  • browser policy,
  • HTTPS downgrade behavior,
  • privacy settings,
  • application implementation.

Apa Itu Referrer-Policy?

Referrer-Policy mengontrol seberapa banyak informasi referer yang boleh dikirim.

Contoh:

Referrer-Policy: no-referrer

atau:

Referrer-Policy: strict-origin-when-cross-origin

Policy ini membantu mengontrol informasi URL yang dapat diteruskan ke destination.

Apa Fungsi Accept?

Accept menunjukkan jenis content yang dapat diterima client.

Contoh browser:

Accept: text/html

Untuk API:

Accept: application/json

Client dapat menyatakan beberapa media type sekaligus.

Accept: text/html,application/xhtml+xml,application/xml

Apa Fungsi Accept-Language?

Header ini menunjukkan bahasa yang lebih disukai client.

Accept-Language: id-ID,id;q=0.9,en;q=0.8

Server dapat menggunakan nilai tersebut sebagai salah satu sinyal untuk menentukan bahasa content.

Tetapi website tidak harus selalu mengikuti header ini.

Proxy Tidak Otomatis Mengubah Accept-Language

Misalnya kamu menggunakan proxy Jepang.

Exit IP → Japan Accept-Language → id-ID

Keduanya bisa tetap berbeda.

Proxy memengaruhi jalur koneksi, sedangkan Accept-Language berasal dari browser atau aplikasi.

Apa Fungsi Accept-Encoding?

Header ini memberi tahu server compression encoding yang didukung client.

Contohnya:

Accept-Encoding: gzip, deflate, br

Server dapat memilih encoding tertentu untuk mengurangi ukuran transfer.

Apa Fungsi Content-Type?

Content-Type menjelaskan jenis content yang dikirim.

Contohnya HTML:

Content-Type: text/html; charset=utf-8

JSON:

Content-Type: application/json

Gambar:

Content-Type: image/webp

Header ini sangat penting pada request maupun response yang membawa body.

Content-Type pada API Request

Misalnya client mengirim JSON:

POST /users HTTP/1.1 Host: api.example.com Content-Type: application/json { "name": "Budi" }

Server mengetahui bahwa body harus diperlakukan sebagai JSON.

Content-Type Salah Bisa Membuat API Error

Misalnya body berisi JSON tetapi header menyatakan:

Content-Type: text/plain

API tertentu dapat menolak request atau gagal mem-parsing payload.

Apa Itu Content-Length?

Content-Length menunjukkan ukuran content dalam octet sesuai framing yang digunakan.

Contoh:

Content-Length: 1024

Artinya body yang dikirim mempunyai panjang 1024 byte.

Apa Fungsi Authorization?

Authorization membawa credential authentication menuju server.

Contoh Bearer token:

Authorization: Bearer eyJ...

Contoh Basic authentication:

Authorization: Basic dXNlcjpwYXNz
Authorization dapat berisi credential sensitif. Jangan menaruh header seperti ini di log publik, screenshot, repository, atau artikel tanpa menyensor nilainya.

Authorization Berbeda dengan Proxy-Authorization

Ini penting ketika menggunakan proxy.

Header Untuk Siapa?
Authorization Origin server / API
Proxy-Authorization Proxy server

Apa Itu Proxy-Authorization?

Proxy-Authorization digunakan untuk mengirim credential ke HTTP proxy.

Contoh konseptual:

Proxy-Authorization: Basic [credential]

Kalau credential belum tersedia atau salah, proxy dapat mengembalikan:

407 Proxy Authentication Required

Untuk mekanismenya, baca Proxy Authentication.

Apa Fungsi Cookie?

Cookie membawa cookie yang relevan dari client ke server.

Contoh:

Cookie: session=abc123; language=id

Cookie sering digunakan untuk:

  • session login,
  • preferences,
  • shopping cart,
  • analytics,
  • state aplikasi.

Apa Itu Set-Cookie?

Set-Cookie merupakan response header yang meminta browser menyimpan cookie.

Contoh:

Set-Cookie: session=abc123; HttpOnly; Secure

Pada request berikutnya, browser dapat mengirim kembali cookie tersebut sesuai aturan domain, path, expiry, SameSite, dan atribut lainnya.

Proxy Tidak Otomatis Menghapus Cookie

Misalnya kamu mengganti proxy dari Indonesia ke Singapura tetapi menggunakan browser profile yang sama.

Cookie sebelumnya masih bisa tetap dikirim.

IP → Singapore Cookie → session lama Indonesia

Karena itu pengujian lokasi atau session tertentu perlu mempertimbangkan cookie selain IP.

Ingin Menguji Request HTTP Melalui Proxy?

GudangProxy menyediakan daftar proxy gratis yang dapat difilter berdasarkan negara, protokol, tingkat anonimitas, dan status koneksi. Kamu bisa menguji bagaimana request, response, IP keluar, dan HTTP header berperilaku melalui endpoint yang berbeda.

Lihat Daftar Proxy Gratis →

Apa Fungsi Cache-Control?

Cache-Control mengontrol caching pada browser, proxy cache, CDN, atau intermediary lain.

Contoh:

Cache-Control: max-age=3600

Artinya response dapat dianggap fresh selama periode tertentu sesuai semantics directive tersebut.

Contoh lain:

Cache-Control: no-store

yang memberi instruksi agar response tidak disimpan oleh cache.

Apa Itu max-age?

Contoh:

Cache-Control: max-age=3600

Nilai 3600 berarti satu jam.

Selama response masih fresh, client atau cache dapat menggunakan salinan yang tersedia tanpa selalu mengambil resource penuh lagi.

Apa Itu no-cache?

Nama ini sering disalahpahami.

no-cache bukan selalu berarti response tidak boleh disimpan sama sekali.

Secara umum cache harus melakukan validation sebelum menggunakan kembali response.

Apa Itu no-store?

no-store digunakan ketika response tidak boleh disimpan oleh cache.

Ini berbeda dari no-cache.

Apa Fungsi ETag?

ETag adalah validator untuk representasi resource.

Server dapat mengirim:

ETag: "abc123"

Pada request berikutnya client dapat mengirim:

If-None-Match: "abc123"

Jika resource belum berubah, server dapat memberikan:

304 Not Modified

HTTP Header dan Status 304

Conditional request membuat browser tidak perlu mengunduh seluruh content yang sama berulang kali.

Browser
→
If-None-Match
→
Server
→
304

Apa Fungsi Location Header?

Location sering digunakan pada redirect.

HTTP/1.1 301 Moved Permanently Location: https://example.com/new-page

Browser kemudian dapat mengikuti URL baru tersebut.

Untuk status redirect, baca HTTP Status Code.

Apa Fungsi Server Header?

Response dapat mempunyai:

Server: nginx

Header ini dapat memberikan informasi tentang software yang menangani request.

Tetapi server tidak wajib memberikan detail lengkap mengenai implementasinya.

Apa Fungsi Date Header?

Date memberi informasi waktu ketika HTTP message dibuat.

Contohnya:

Date: Wed, 28 Oct 2026 01:00:00 GMT

RFC 9110 mendefinisikan Date sebagai timestamp originasi message. :chatgpt-content-reference{index="4"}

Apa Fungsi Connection Header?

Connection digunakan untuk control data yang berlaku pada connection tertentu.

Contoh klasik:

Connection: close

atau pada HTTP/1.1 tertentu:

Connection: keep-alive

Namun header hop-by-hop mempunyai aturan khusus ketika message melewati intermediary.

Apa Itu Hop-by-Hop Header?

Hop-by-hop berarti field hanya berlaku pada satu connection antara dua participant yang berdekatan.

Contohnya:

Client ↔ Proxy Proxy ↔ Server

Kedua hubungan tersebut merupakan connection yang berbeda.

RFC 9110 menjelaskan intermediary harus memproses field yang disebut di Connection sebelum meneruskan message, kemudian menghapus field connection-specific tersebut. :chatgpt-content-reference{index="5"}

Apa Itu End-to-End Header?

Secara konsep, banyak header mempunyai semantics yang tetap relevan sampai origin atau recipient akhir.

Proxy biasanya meneruskan field yang tidak dikenal kecuali field tersebut connection-specific atau proxy dikonfigurasi untuk memblokir/mengubahnya. RFC 9110 secara eksplisit menjelaskan behavior ini. :chatgpt-content-reference{index="6"}

Apa Hubungan HTTP Header dengan Proxy?

HTTP proxy berada di antara client dan server.

Client
→
Proxy
→
Server

Karena berada di tengah, proxy dapat mempunyai peran terhadap header seperti:

  • meneruskan header,
  • menghapus header tertentu,
  • menambahkan header,
  • mengubah field sesuai konfigurasi,
  • menangani Proxy-Authorization,
  • menambahkan informasi forwarding.

Apakah Proxy Selalu Mengubah Header?

Tidak.

Behavior tergantung:

  • jenis proxy,
  • software proxy,
  • configuration,
  • protocol,
  • policy administrator.

Proxy bisa meneruskan banyak header tanpa perubahan.

Apa Itu Via Header?

Via digunakan pada HTTP intermediary untuk menunjukkan informasi mengenai protocol intermediary yang telah menangani message.

Contoh konseptual:

Via: 1.1 proxy.example.com

Header ini juga berkaitan dengan forwarding chain dan pencegahan loop.

Untuk arsitektur beberapa proxy, baca Proxy Chain.

Apa Itu Forwarded Header?

Forwarded merupakan standardized header yang dapat membawa informasi mengenai koneksi asli ketika request melewati proxy.

Contoh:

Forwarded: for=192.0.2.60;proto=https;host=example.com

Informasinya dapat mencakup:

  • alamat asal,
  • protocol,
  • host.

Apa Itu X-Forwarded-For?

X-Forwarded-For merupakan header yang sangat umum digunakan untuk membawa informasi alamat client melalui proxy atau load balancer.

Contoh:

X-Forwarded-For: 198.51.100.20

Dalam chain:

X-Forwarded-For: client, proxy-a, proxy-b

format dan behavior dapat bergantung pada infrastructure yang digunakan.

Apakah X-Forwarded-For Selalu Bisa Dipercaya?

Tidak.

Client dapat mengirim header tersebut sendiri jika infrastructure tidak menghapus atau menggantinya.

Karena itu backend seharusnya hanya mempercayai forwarding header yang datang melalui proxy/load balancer yang memang dipercaya.

Jangan menggunakan X-Forwarded-For dari internet secara buta untuk keputusan keamanan. Tentukan trust boundary dan trusted proxy terlebih dahulu.

Apa Itu X-Forwarded-Proto?

Header ini sering digunakan reverse proxy untuk memberi tahu backend protocol yang digunakan client.

X-Forwarded-Proto: https

Contoh arsitektur:

Browser ↓ HTTPS Nginx ↓ HTTP internal Application

Backend tetap dapat mengetahui bahwa koneksi asli dari client menggunakan HTTPS.

Apa Itu X-Forwarded-Host?

Header ini dapat membawa hostname asli yang digunakan client sebelum request melewati intermediary.

X-Forwarded-Host: example.com

Ini dapat berguna ketika reverse proxy berbicara ke backend menggunakan hostname berbeda.

Forward Proxy dan Reverse Proxy Memperlakukan Header Berbeda?

Bisa.

Forward proxy melayani client menuju internet.

Client → Forward Proxy → Website

Reverse proxy berada di depan server.

Client → Reverse Proxy → Backend

Karena fungsi keduanya berbeda, header yang ditambahkan atau digunakan juga bisa berbeda.

Baca Forward Proxy vs Reverse Proxy.

HTTP CONNECT dan Header

Untuk HTTPS melalui HTTP proxy, client dapat mengirim:

CONNECT example.com:443 HTTP/1.1 Host: example.com:443

Setelah tunnel berhasil dibuat, TLS traffic berjalan melalui tunnel.

Proxy biasa tidak membaca header HTTP yang berada di dalam koneksi HTTPS end-to-end jika tidak melakukan TLS interception.

Kenapa HTTPS Penting dalam Pembahasan Header?

Pada HTTPS, HTTP message dienkripsi di dalam TLS antara endpoint TLS.

Jadi intermediary biasa yang hanya meneruskan TCP tunnel tidak otomatis dapat membaca header HTTP di dalamnya.

Client ↓ encrypted TLS Proxy tunnel ↓ encrypted TLS Website

Apa Itu Proxy-Connection?

Kamu mungkin pernah melihat:

Proxy-Connection: keep-alive

Header ini pernah digunakan oleh beberapa client/proxy, tetapi bukan field standar utama seperti header HTTP yang didefinisikan dalam spesifikasi modern.

Jangan membuat implementasi baru bergantung padanya tanpa memahami compatibility target.

Header dan Web Scraping

Script scraping biasanya mengirim HTTP header seperti client lainnya.

Contoh sederhana Python:

headers = { "Accept": "text/html" }

Tetapi jangan menganggap mengganti User-Agent atau header tertentu otomatis membuat sebuah script sama seperti browser.

Browser mempunyai behavior jauh lebih kompleks seperti cookie, TLS, JavaScript, caching, redirect, dan berbagai request tambahan.

Header Tidak Boleh Digunakan untuk Mengabaikan Aturan Website

Jika website membatasi automation atau scraping, mengganti header bukan alasan untuk mengabaikan policy tersebut.

Untuk automation yang sah, ikuti:

  • Terms of Service,
  • robots policy yang relevan,
  • rate limit,
  • API documentation,
  • akses yang memang diizinkan.

HTTP Header dan API

Pada API, header bahkan lebih penting karena sering digunakan untuk:

  • authentication,
  • content negotiation,
  • versioning,
  • rate limit metadata,
  • request tracing,
  • caching.

Contoh API Request

GET /api/users HTTP/1.1 Host: api.example.com Accept: application/json Authorization: Bearer [TOKEN]

Server dapat membalas:

HTTP/1.1 200 OK Content-Type: application/json Cache-Control: no-store {"users":[]}

Header Rate Limit

Beberapa API memberikan metadata seperti:

X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 25 X-RateLimit-Reset: 1793160000

Nama field dapat berbeda antar-provider.

Kalau ingin memahami mekanismenya, baca Rate Limit API.

Apa Itu Retry-After?

Retry-After dapat digunakan untuk memberi tahu kapan client sebaiknya mencoba lagi.

Retry-After: 60

Header ini sering ditemui bersama kondisi seperti 429 atau 503.

Custom Header

Aplikasi dapat mempunyai field custom.

Contohnya:

X-Request-ID: abc123

atau:

X-App-Version: 10

Tetapi untuk standard interoperability, sebaiknya gunakan field standar jika memang sudah ada field yang sesuai.

Apa Itu Request ID?

Request ID membantu melacak satu request melalui beberapa service.

Client ↓ request-id abc123 Reverse Proxy ↓ request-id abc123 API ↓ request-id abc123 Database / Service

Ketika error terjadi, log dapat dicari berdasarkan ID yang sama.

HTTP Header dan CDN

CDN dapat menggunakan header untuk caching, routing, compression, content negotiation, dan berbagai behavior lainnya.

Contohnya:

Cache-Control ETag Vary Accept-Encoding

Apa Itu Vary Header?

Vary memberi informasi kepada cache bahwa response dapat berbeda berdasarkan request header tertentu.

Contoh:

Vary: Accept-Encoding

Artinya cached representation dapat berbeda berdasarkan compression encoding yang diterima client.

Contoh Vary Berdasarkan Bahasa

Vary: Accept-Language

Response bahasa Indonesia dan Inggris bisa mempunyai cache variant berbeda.

HTTP Header dan CORS

Browser juga menggunakan sejumlah header terkait Cross-Origin Resource Sharing atau CORS.

Contohnya response:

Access-Control-Allow-Origin: https://example.com

Header CORS mengontrol apakah browser mengizinkan JavaScript dari origin tertentu membaca response cross-origin.

CORS Bukan Firewall Server

CORS terutama merupakan browser security mechanism.

Request dari tool seperti cURL tidak mengikuti enforcement CORS browser dengan cara yang sama.

Jadi error CORS di browser tidak selalu berarti server tidak dapat diakses melalui network.

HTTP Header dan Security

Beberapa response header digunakan untuk security policy browser.

Contohnya:

  • Content-Security-Policy,
  • Strict-Transport-Security,
  • X-Content-Type-Options,
  • Referrer-Policy.

Masing-masing mempunyai fungsi dan konfigurasi sendiri.

Apa Itu Content-Security-Policy?

CSP membantu website menentukan sumber content yang diizinkan oleh browser.

Contoh sederhana:

Content-Security-Policy: default-src 'self'

Konfigurasi CSP perlu dibuat dengan hati-hati karena rule yang terlalu ketat dapat merusak fungsi website.

Apa Itu Strict-Transport-Security?

HSTS memberi instruksi kepada browser untuk menggunakan HTTPS pada host tertentu dalam periode yang ditentukan.

Contoh:

Strict-Transport-Security: max-age=31536000

HTTP Header Bisa Terlalu Besar?

Bisa.

Walaupun HTTP tidak menetapkan satu batas global sederhana untuk semua field, implementasi server, proxy, CDN, atau framework mempunyai batas praktis masing-masing.

RFC 9110 menjelaskan bahwa server dapat memberikan error 4xx ketika header terlalu besar untuk diproses. :chatgpt-content-reference{index="7"}

Kenapa Cookie Sering Membuat Header Besar?

Cookie dikirim dalam request.

Kalau sebuah domain memiliki banyak cookie atau nilai cookie sangat panjang:

Cookie: session=... tracking=... preferences=... cart=... ...

ukuran request header dapat meningkat cukup besar.

Header Terlalu Besar Bisa Gagal di Proxy

Request mungkin diterima satu server tetapi ditolak oleh reverse proxy yang mempunyai batas header lebih kecil.

Browser ↓ Nginx → header terlalu besar ↓ ✕ Backend

Dalam kondisi seperti ini backend bahkan belum menerima request.

HTTP Header Bersifat Case-Insensitive?

Nama HTTP field bersifat case-insensitive menurut RFC 9110. :chatgpt-content-reference{index="8"}

Secara semantics:

Content-Type content-type CONTENT-TYPE

merujuk pada field name yang sama.

Tetapi aplikasi tetap sebaiknya mengikuti format konvensional agar mudah dibaca.

Bagaimana Cara Melihat HTTP Header?

Ada beberapa cara mudah.

1. Browser Developer Tools

Buka:

Developer Tools → Network → pilih request → Headers

Kamu dapat melihat request dan response header.

2. Menggunakan cURL

Untuk melihat response header:

curl -I https://example.com

Untuk verbose request:

curl -v https://example.com

3. Melalui Proxy

curl -v \ -x http://203.0.113.20:8080 \ https://example.com

Ini membantu melihat proses koneksi proxy sekaligus HTTP/TLS yang relevan.

Cara Mengirim Custom Header dengan cURL

Gunakan opsi:

-H

Contoh:

curl \ -H "Accept: application/json" \ https://api.example.com/

Beberapa header sensitif tidak sebaiknya diketik sembarangan pada terminal shared karena command history dapat menyimpannya.

Cara Melihat Header Saja

Gunakan request HEAD jika server mendukung behavior yang sesuai:

curl -I https://example.com

HEAD dirancang untuk mendapatkan metadata response tanpa response content seperti GET biasa. RFC 9110 mendefinisikan HEAD identik dengan GET dalam semantics utama tetapi server tidak mengirim content body. :chatgpt-content-reference{index="9"}

Header Request Bisa Berbeda antara Browser dan cURL

Browser biasanya mengirim lebih banyak header.

Contohnya browser dapat mengirim:

Accept Accept-Language Accept-Encoding User-Agent Cookie Sec-Fetch-* sec-ch-ua ...

Sedangkan cURL default bisa jauh lebih sederhana.

Jadi jangan menganggap request yang berhasil di browser pasti identik dengan request cURL.

Kenapa Website Bisa Berbeda Saat Menggunakan Proxy?

Proxy dapat mengubah salah satu sinyal paling penting yaitu source IP.

Tetapi header browser tetap bisa membawa konteks lain.

Exit IP: Singapore
Accept-Language: id-ID
Cookie country: ID
User-Agent: Chrome Windows

Website dapat menggunakan kombinasi beberapa sinyal untuk menentukan response.

Apakah Proxy Mengubah User-Agent?

Proxy biasa tidak harus mengubah User-Agent.

Contohnya:

Browser User-Agent ↓ Proxy ↓ Website menerima User-Agent yang sama

Proxy tertentu dapat dikonfigurasi mengubah header, tetapi itu bukan behavior universal.

Apakah Proxy Menghapus Referer?

Tidak secara otomatis.

Referer biasanya dikontrol browser dan Referrer-Policy.

Proxy dapat dimodifikasi untuk menghapus atau mengubah header tertentu, tetapi jangan menganggap semua proxy melakukannya.

Transparent Proxy dan Header

Beberapa proxy dapat menambahkan informasi tertentu mengenai jalur request.

Karena itu pembahasan anonimitas proxy tidak hanya berkaitan dengan perubahan source IP.

Baca Anonymous Proxy untuk konteks lebih lanjut.

Kesalahan Umum Tentang HTTP Header

  • menganggap header sama dengan body,
  • menganggap User-Agent adalah IP address,
  • menganggap proxy otomatis mengubah semua header,
  • menganggap Referer selalu dikirim,
  • menganggap no-cache sama dengan no-store,
  • menaruh credential Authorization di log publik,
  • mempercayai X-Forwarded-For tanpa trusted proxy,
  • menganggap mengganti User-Agent membuat script identik dengan browser,
  • menganggap CORS adalah network firewall,
  • mengabaikan ukuran HTTP header.

Ringkasan Header yang Sering Ditemui

Header Fungsi Singkat
Host Hostname tujuan request.
User-Agent Informasi software client.
Referer Sumber navigasi sebelumnya.
Accept Jenis content yang diterima.
Accept-Language Preferensi bahasa.
Accept-Encoding Compression yang didukung.
Content-Type Jenis content/body.
Authorization Credential untuk origin server.
Proxy-Authorization Credential untuk proxy.
Cookie Cookie client menuju server.
Set-Cookie Server meminta browser menyimpan cookie.
Cache-Control Aturan caching.
ETag Validator representasi.
Location Lokasi redirect/resource.
Via Informasi HTTP intermediary.
Forwarded Informasi forwarding terstandar.
X-Forwarded-For Informasi alamat client melalui proxy tertentu.

FAQ HTTP Header

Apa itu HTTP header?

HTTP header adalah field nama dan nilai yang membawa metadata atau informasi tambahan mengenai HTTP request dan response.

Apa beda request header dan response header?

Request header dikirim client menuju server, sedangkan response header dikirim server kembali menuju client.

Apa fungsi Host header?

Host menunjukkan hostname tujuan request dan membantu server menentukan virtual host atau resource yang harus menangani request.

Apa fungsi User-Agent?

User-Agent memberi informasi mengenai software client yang membuat HTTP request, seperti browser atau aplikasi tertentu.

Apa fungsi Referer?

Referer dapat menunjukkan halaman sebelumnya yang menjadi sumber navigasi menuju resource saat ini, tergantung Referrer-Policy dan behavior client.

Apa fungsi Content-Type?

Content-Type menjelaskan jenis content yang dikirim, misalnya text/html atau application/json.

Apa beda Authorization dan Proxy-Authorization?

Authorization digunakan untuk authentication menuju origin server, sedangkan Proxy-Authorization digunakan untuk authentication menuju HTTP proxy.

Apakah proxy mengubah HTTP header?

Bisa, tetapi tidak selalu. Perilaku tergantung jenis proxy, software, protocol, dan konfigurasi administrator.

Apakah proxy otomatis mengubah User-Agent?

Tidak. Proxy biasa dapat meneruskan User-Agent client tanpa perubahan kecuali dikonfigurasi untuk memodifikasinya.

Apakah X-Forwarded-For bisa dipercaya?

Tidak secara sembarangan. Aplikasi sebaiknya hanya mempercayai forwarding header dari reverse proxy atau load balancer yang memang ditetapkan sebagai trusted intermediary.