HTTP Header: Metadata dari Request

Panduan ramah pemula soal HTTP header — pasangan key:value yang ikut menempel di setiap request dan response. Kenali Content-Type, Authorization, Cache-Control, Set-Cookie, dan lainnya lewat contoh nyata.

Diterbitkan 15 September 20267 menit bacaOleh ACY Partner Indonesia
Sampul HTTP Header dengan code chip Content-Type
300 × 250Slot Iklan TersediaPasang iklan Anda di sini

Setiap kali browser kamu berbicara dengan sebuah situs, yang dikirim bukan cuma “tolong kasih halaman ini.” Menempel di permintaan sederhana itu ada sekumpulan informasi tambahan: format apa yang bisa kamu terima, siapa kamu, apakah kamu pernah ke sini sebelumnya, dan selusin detail lain. Sekumpulan informasi itu disusun dari HTTP header, dan begitu kamu paham, banyak perilaku web yang tadinya terasa misterius mendadak jadi masuk akal.

Di panduan ini kita akan membongkar apa itu header, apa beda request header dengan response header, dan segelintir header umum yang akan terus kamu temui. Tidak perlu pengalaman sebelumnya — setiap istilah akan kita jelaskan begitu muncul.

Apa sebenarnya sebuah header itu

Sebuah pesan HTTP — entah itu request yang dikirim browser atau response yang dibalas server — terdiri dari dua bagian: body (isi sesungguhnya, misalnya HTML sebuah halaman atau data yang kamu kirim) dan sekumpulan header yang mendeskripsikan isi tersebut beserta konteks percakapannya.

Sebuah header sederhananya cuma sepasang key dan value yang dipisahkan tanda titik dua. Bayangkan seperti label di kotak paket. Kotaknya menyimpan barang (body), tapi labelnya memberi tahu alamat tujuan, seberapa mudah pecah, dan bagaimana harus diperlakukan. Header adalah label semacam itu untuk lalu lintas web.

Kira-kira beginilah wujud sebuah request kalau ditulis sebagai teks biasa:

GET /articles HTTP/1.1
Host: blog.acy-partner.com
User-Agent: Mozilla/5.0
Accept: text/html
Accept-Language: id-ID
Connection: keep-alive

Baris pertama adalah request-nya sendiri (metode dan path). Semua yang ada di bawahnya, sampai sebelum baris kosong, adalah header — satu per baris, masing-masing berbentuk Key: Value. Server membaca semua ini untuk menentukan cara menjawab.

Header bukan body

Header mendeskripsikan pesan; ia bukan isi dari pesan itu. Saat kamu mengirim formulir, nama dan email kamu masuk ke body. Informasi tentang pengiriman itu — seperti formatnya dan ukurannya — masuk ke header.

Request header vs response header

Kedua sisi percakapan sama-sama memakai header, tapi yang mereka sampaikan berbeda.

Request header berjalan dari klien (browser kamu, aplikasi ponsel, atau sebuah skrip) menuju server. Isinya kebanyakan mendeskripsikan siapa yang meminta dan apa yang sanggup ia tangani. Misalnya, browser kamu memberitahukan bahasa dan format apa yang ia sukai supaya server bisa menyesuaikan balasannya.

Response header berjalan kembali dari server ke klien. Isinya mendeskripsikan apa yang dikirim dan bagaimana memperlakukannya — format datanya, apakah boleh disimpan dalam cache, cookie apa yang perlu disimpan, dan seterusnya.

Beginilah gambaran perjalanan bolak-baliknya:

   ┌─────────┐   request + request header     ┌─────────┐
   │ Browser │ ─────────────────────────────► │ Server  │
   │ (klien) │ ◄───────────────────────────── │         │
   └─────────┘   response + response header    └─────────┘

Beberapa nama header bisa muncul di dua arah, tapi sebagian besar punya tempat alaminya di salah satu sisi. Mari kita lihat header yang benar-benar akan sering kamu temui.

Header umum, dijelaskan satu per satu

Content-Type

Content-Type memberitahu penerima format dari body, supaya ia tahu cara mengartikan deretan byte itu. Sebuah halaman web dibalas sebagai text/html; sebuah API sering membalas dengan application/json; sebuah gambar bisa jadi image/png.

Content-Type: application/json

Header ini penting di kedua arah. Saat kamu mengirim data ke server, Content-Type kamu memberitahu cara membaca body-mu. Saat server membalas, Content-Type miliknya memberitahu browser apakah yang dilihat itu halaman untuk ditampilkan, berkas untuk diunduh, atau data untuk diproses.

Content-Type yang salah merusak diam-diam

Kalau server melabeli data JSON sebagai text/plain, browser bisa memperlakukannya sebagai teks mentah alih-alih data terstruktur, dan kode kamu yang menunggu JSON jadi tidak dapat apa-apa yang berguna. Header-nya harus cocok dengan isi sebenarnya.

Content-Length

Content-Length menyatakan ukuran body, dalam satuan byte. Ini membuat penerima tahu persis berapa banyak data yang harus ia harapkan, sehingga ia bisa tahu kapan sebuah pesan sudah lengkap.

Content-Length: 1024

Kamu jarang mengaturnya sendiri — biasanya alat menghitungkannya untukmu — tapi bagus untuk bisa mengenalinya saat melihatnya.

Authorization

Authorization adalah cara sebuah request membuktikan dirinya atau bahwa ia memang diizinkan masuk. Pola yang sangat umum adalah bearer token: sebuah string panjang yang diberikan server setelah kamu login, lalu kamu tempelkan di request-request berikutnya.

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Tanpa header ini, sebuah endpoint terproteksi biasanya akan menolak menjawab. Karena ia membawa kredensial, header ini hanya boleh dikirim lewat koneksi terenkripsi (HTTPS), tidak pernah lewat HTTP biasa.

User-Agent

User-Agent adalah deskripsi-diri yang dikirim klien tentang dirinya sendiri — browser atau program beserta versinya. Server kadang memakainya untuk menyesuaikan response, misalnya menyajikan tata letak yang ramah ponsel.

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

Sifatnya sekadar informasi dan mudah dipalsukan, jadi ia tidak pernah menjadi fitur keamanan — cuma sebuah petunjuk.

Accept

Accept adalah cara klien dengan sopan menyebut format apa yang ingin ia terima kembali. Server berusaha menghormatinya, tapi tidak wajib.

Accept: application/json

Kalau kamu meminta application/json ke sebuah API, server yang berperilaku baik akan memberimu JSON. Anggap Accept sebagai pasangan di sisi request dari Content-Type di response: yang satu bilang “ini yang aku mau,” yang lain bilang “ini yang benar-benar aku kirim.”

Cache-Control

Cache-Control mengatur caching — apakah dan berapa lama sebuah response boleh disimpan lalu dipakai ulang alih-alih diambil lagi. Caching membuat situs lebih cepat dengan menghindari unduhan berulang.

Cache-Control: max-age=3600, public

Contoh itu mengatakan response boleh disimpan selama 3600 detik (satu jam) dan boleh disimpan oleh cache bersama. Kebalikannya yang ekstrem, no-store, menyuruh semua pihak untuk tidak pernah menyimpan salinan — berguna untuk data sensitif atau yang selalu berubah.

Set-Cookie adalah response header tempat server meminta browser untuk mengingat sepotong kecil data dan mengirimkannya kembali di request berikutnya. Inilah cara sebuah situs membuatmu tetap login saat berpindah halaman.

Set-Cookie: session_id=abc123; HttpOnly; Secure

Browser menyimpan cookie itu dan otomatis menyertakannya (lewat request header Cookie) pada request berikutnya ke situs yang sama. Penanda HttpOnly dan Secure di atas memperkuatnya: HttpOnly menyembunyikannya dari skrip halaman, dan Secure hanya mengirimnya lewat HTTPS.

Location

Location muncul pada response berupa redirect (pengalihan). Saat server membalas dengan kode status di rentang 3xx — misalnya “halaman ini sudah pindah” — header Location memberitahu browser harus pergi ke mana sebagai gantinya.

Location: https://blog.acy-partner.com/new-url

Browser membacanya lalu diam-diam membuat request baru ke alamat itu, itulah sebabnya kadang kamu melihat URL berubah dengan sendirinya.

Tabel rujukan singkat

Berikut header-header tadi disandingkan, lengkap dengan arah tempat kamu biasanya menemukannya dan kegunaannya.

Header Biasanya di Kegunaannya
Content-Type keduanya Menyatakan format body (HTML, JSON, gambar)
Content-Length keduanya Ukuran body dalam byte
Authorization request Membawa kredensial, misalnya bearer token
User-Agent request Mengidentifikasi klien (browser/aplikasi)
Accept request Format yang ingin diterima klien
Cache-Control keduanya Aturan caching untuk response
Set-Cookie response Meminta browser menyimpan data
Location response Tujuan redirect yang harus diikuti browser

Melihat header dengan mata kepala sendiri

Kamu tidak butuh perangkat lunak khusus untuk memeriksa header. Buka developer tools di browser (biasanya tombol F12), masuk ke tab Network, muat ulang halaman, lalu klik salah satu request di daftar. Kamu akan melihat request header dan response header-nya tersusun persis seperti contoh-contoh di atas.

Dari terminal, satu perintah saja sudah menampilkan response header untuk sebuah URL:

curl -I https://blog.acy-partner.com

Penanda -I meminta header saja, tanpa body. Ini cara cepat untuk mengecek hal seperti Content-Type dan Cache-Control yang benar-benar dikirim sebuah situs.

Rangkuman

Header adalah metadata-nya web — label kecil berbentuk Key: Value yang menempel di setiap request dan response, mendeskripsikan percakapan tanpa menjadi bagian dari isinya. Begini gambaran besarnya:

  • Sebuah pesan HTTP punya body (isinya) dan header (label yang mendeskripsikannya).
  • Request header menyebut siapa yang meminta dan apa yang ia sanggup tangani; response header menyebut apa yang dikirim dan bagaimana memperlakukannya.
  • Beberapa nama saja sudah menutupi sebagian besar situasi: Content-Type dan Content-Length mendeskripsikan body; Authorization, User-Agent, dan Accept menumpang di request; Cache-Control, Set-Cookie, dan Location membentuk response.

Begitu header sudah terasa pas, langkah berikutnya yang alami adalah bagian lain dari sebuah response: kode status — angka tiga digit seperti 200, 404, dan 301 yang dalam sekejap memberitahumu bagaimana hasil sebuah request. Padukan header dengan kode status, dan kamu bisa membaca hampir semua pertukaran HTTP dengan percaya diri.

Tag:httpheaderweb-fundamentalscontent-typecachingcookie
728 × 90Slot Iklan TersediaPasang iklan Anda di sini

Artikel Terkait

Lihat Semua Artikel

Artikel yang Mungkin Kamu Suka

Ilustrasi DOM sebagai pohon dari node HTML
Dasar-Dasar Web / Browser

Apa Itu DOM?

Penjelasan DOM untuk pemula: pohon HTML yang hidup di memori browser. Pahami apa itu DOM, bagaimana pohonnya dibentuk, dan kenapa ia begitu penting.

15 Sep 20267 menit baca
Ilustrasi berjudul Apa Itu Web Browser dengan code chip fetch ke render
Dasar-Dasar Web / Browser

Apa Itu Web Browser?

Penjelasan sederhana soal web browser: program yang mengambil berkas dari web lalu menyusunnya menjadi halaman yang kamu lihat, satu tab dan satu klik setiap saat.

15 Sep 20268 menit baca
Ilustrasi engine browser menjalankan skrip lewat event loop
Dasar-Dasar Web / Browser

Cara Browser Menangani JavaScript

Penjelasan ramah pemula soal bagaimana browser membaca, mengubah, dan menjalankan JavaScript, kenapa hanya punya satu jalur utama, dan bagaimana cara memuat skrip memengaruhi tampilan halaman.

15 Sep 20268 menit baca
Sampul biru gelap bertuliskan Cara Kerja Browser dengan chip kode parse ke layout ke paint
Dasar-Dasar Web / Browser

Cara Kerja Browser: Gambaran Umum

Penjelasan ramah pemula tentang apa yang dilakukan browser dari kamu mengetik URL sampai halaman muncul: jaringan, parsing, render tree, layout, paint, compositing, dan mesin JavaScript.

15 Sep 20268 menit baca
Sampul Critical Rendering Path dengan chip timer first paint
Dasar-Dasar Web / Browser

Critical Rendering Path

Ikuti langkah persis yang dilakukan browser untuk mengubah HTML, CSS, dan JavaScript menjadi piksel pertama yang terlihat, dan pahami kenapa posisi CSS dan JS menentukan secepat apa halaman muncul.

15 Sep 20267 menit baca
Sampul Dasar Keamanan Browser dengan chip kode berlambang perisai same-origin
Dasar-Dasar Web / Browser

Dasar Keamanan Browser: Cara Browser Diam-Diam Melindungimu

Panduan ramah untuk pemula tentang cara browser menjaga keamananmu: same-origin policy, sandboxing antar-tab, gembok HTTPS, mixed content, dan pengantar lembut soal kenapa input bisa berbahaya.

15 Sep 202610 menit baca