Semua artikel

Header HTTP: apa yang tersembunyi di setiap request dan response

Karena kuota data seluler di Indonesia masih relatif mahal bagi banyak pengguna, sejumlah aplikasi browser hemat data dan proxy operator seluler mengompresi trafik di tengah jalan sebelum sampai ke perangkat. Proxy semacam ini sering menambahkan header Via (menunjukkan server perantara yang dilewati) dan kadang mengubah Content-Encoding atau kualitas gambar — sehingga developer bisa salah mengira server sendiri yang mengirim response yang salah, padahal masalahnya ada di jaringan perantara.

Header request vs header response

Header request (seperti Accept, User-Agent, Cookie) dikirim browser ke server, menjelaskan dirinya sendiri dan ekspektasinya. Header response (Content-Type, Set-Cookie, Cache-Control) dikirim server kembali, menjelaskan data yang dikembalikan dan instruksi untuk browser.

Untuk apa Content-Type dibutuhkan

Header Content-Type memberi tahu browser cara menginterpretasikan body response: sebagai halaman HTML, data JSON, gambar, atau file untuk diunduh. Tanpa nilai yang tepat di sini, browser mungkin mencoba menampilkan JSON sebagai teks biasa, atau sebaliknya, salah menangani HTML.

Bagaimana Cache-Control mengatur caching

Nilai seperti max-age=3600 atau no-cache memberi tahu browser dan proxy perantara berapa lama versi resource yang di-cache bisa digunakan tanpa meminta ulang ke server. Konfigurasi header ini yang salah adalah penyebab umum mengapa pengguna melihat versi lama sebuah situs.

Untuk apa ini dibutuhkan

  • Mendiagnosis mengapa browser menampilkan response API secara salah.
  • Mendeteksi header Via tambahan yang menunjukkan response melewati proxy kompresi operator seluler.
  • Memastikan situs disajikan lewat HTTPS — syarat wajib agar Web Crypto API yang dipakai alat hash dan JWT di situs ini sendiri bisa berfungsi.

Mengapa satu header terkadang muncul beberapa kali

HTTP mengizinkan header yang sama muncul beberapa kali dalam satu response — contoh paling umum adalah beberapa baris Set-Cookie, satu untuk setiap cookie yang ditetapkan. Sebagian besar header berulang lainnya bisa digabungkan menjadi satu nilai yang dipisahkan koma tanpa mengubah maknanya, tapi Set-Cookie adalah pengecualian yang disengaja, karena koma bisa saja secara sah menjadi bagian dari nilai cookie.

Coba alat