HTTP: Hyper Text Transfer Protocol, Cara Kerja HTTP dibalik browser

Dalam post ini, kamu akan memahami apa itu HTTP, contoh HTTP request dan response, serta bagaimana cara kerjanya di balik layar browser kamu. Ini adalah dasar penting untuk memahami bagaimana web bekerja, yang akan sangat berguna untuk web hacking, bug bounty, dan pentesting.
Apa Itu HTTP?
HTTP (Hypertext Transfer Protocol) adalah protokol utama yang digunakan untuk mengirim data antara client (browser) dan server (web server).
Setiap kali kita mengakses situs web, browser akan mengirimkan HTTP request dan server merespons dengan HTTP response, proses ini tidak terlihat secara langsung pada browser dan yang sering kita lihat di browser adalah HTML yang di-render menjadi halaman web yang mana HTML ini adalah hasil dari HTTP response yang dikirim oleh server.
Alur Dasar HTTP
- Ketika kita mengakses
https://example.com/login
di browser - Browser mengirim HTTP request ke server
- Server memproses permintaan dan mengirim HTTP response
- Browser menampilkan halaman login
HTTP diatur pada RFC 7230-7235, yang merupakan standar resmi untuk komunikasi HTTP.
Contoh HTTP Request
GET /login HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Cookie: session=abc123
<body data jika POST request>
HTTP request menggunakan baris kosong (\r\n) setelah header untuk memisahkan dengan body (jika ada). Setiap baris diakhiri dengan \r\n, sesuai spesifikasi HTTP.
Bagian penting yang sering digunakan oleh penyerang untuk mengeksploitasi celah keamanan adalah:
Bagian | Penjelasan | Potensi Celah Keamanan |
---|---|---|
Method | GET, POST, PUT, DELETE | Manipulasi request method |
URL / Path | /admin , /user?id=1 | IDOR, path traversal |
Header | Cookie, Referer, Host | Session hijacking, Host header injection |
Body (POST) | Form data, JSON | SQLi, XSS, command injection payload |
Untuk detail Method HTTP, kamu bisa lihat HTTP Request Methods.
Contoh HTTP Response
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: session=abc123; HttpOnly
<data HTML atau JSON yang dikirim oleh server>
Header penting:
Set-Cookie
: Bisa disalahgunakan jika tidak diamankan seperti pada serangan session hijackingContent-Type
: Bisa digunakan untuk XSS (jika tidak di-set dengan benar sepertitext/html
untuk tipe data json)Location
: Digunakan untuk redirect (bisa dimanipulasi jika tidak menggunakan metode redirect yang aman)
Untuk detail Response HTTP, kamu bisa lihat HTTP Response Status Codes.
HTTP vs HTTPS
- HTTP: Tanpa enkripsi, mudah disadap (MITM)
- HTTPS: Aman karena menggunakan TLS/SSL
untuk sistem enkripsi secara otomatis akan digunakan saat kamu mengakses situs dengan https://
dan browser akan melakukan handshake TLS untuk memastikan koneksi aman, serta melakukan verifikasi sertifikat server dan melakukan dekripsi data yang dikirim oleh server yang telah dienkripsi jika TLS/SSL step berhasil.
Tapi ingat: HTTPS tidak mencegah web hacking, HTTPS hanya melindungi data dalam perjalanan dari client ke server dan vice versa, hal ini mengamankan di layer transport, bukan di layer aplikasi, sedangkan Web Hacking umumnya terjadi di layer aplikasi karena aplikasi tidak menerapkan sistem keamanan yang baik dan secure coding yang baik.
Baca juga: HTTPS adalah Website yang Aman
HTTP Adalah Stateless
Stateless yang artinya setiap permintaan tidak tahu apa yang terjadi sebelumnya. Setiap request adalah permintaan baru yang tidak terkait dengan request sebelumnya. Ini berarti server tidak menyimpan informasi tentang sesi pengguna antara request. Setiap kali kamu mengakses halaman, server tidak tahu apakah kamu sudah login atau belum, lalu bagaimana cara server tahu apakah kamu sudah login atau belum?
Untuk menyimpan “status login”, situs web menggunakan cookie dan session, yang digunakan untuk mengetahui apakah pengguna sudah login atau belum. Cookie adalah data kecil yang disimpan di browser pengguna, sedangkan session adalah data yang disimpan di server.
Jika stateful maka itu bukan HTTP melainkan protokol lain seperti WebSocket, yang memungkinkan komunikasi dua arah dan stateful antara client dan server.
Dengan menggunakan Cookie ataupun Session, server dapat mengingat informasi pengguna antara request, sehingga pengguna tidak perlu login setiap kali mengakses halaman yang sama, namun browser harus mengirimkan cookie yang sesuai pada setiap request ke server.
Alat Untuk Melihat HTTP
- Browser DevTools (Tab Network) – Bisa digunakan untuk melihat request dan response HTTP namun sedikit kurang fleksibel
- Burp Suite – Proxy powerful untuk intercept, modify, dan replay request, sangat cocok untuk pentester dan bug hunter
- Postman – GUI tool untuk testing API dan request HTTP, umumnya digunakan oleh banyak developer sebagai alat testing API
- curl / httpie – CLI tool untuk testing manual, sering digunakan oleh system administrator dan developer untuk mengirim request HTTP dari terminal atau mengecek response dari server
Kesimpulan
HTTP adalah kunci utama dunia web — dan kini kamu tahu bagaimana cara kerjanya!
Kalian bisa menggunakan referensi berikut untuk belajar lebih lanjut tentang HTTP