Fondasi: Komputermu, Web, dan Alat Kerjamu · 5/7
HTTP dalam praktik: request, response, status code
Semua fitur yang akan kamu bangun ujungnya request dan response. Belajar membacanya dengan lancar.
Baca 25 menit
Setelah pelajaran ini kamu bisa
- Membaca HTTP request dan response serta menyebutkan setiap bagiannya
- Memilih method yang tepat untuk sebuah operasi
- Menafsirkan status code yang belum pernah kamu lihat
- Menjelaskan bedanya GET dan POST dengan cara yang benar-benar penting
HTTP itu teks. Itu seluruh rahasianya. Buang semua alat bantunya dan sebuah request cuma beberapa baris yang bisa kamu ketik sendiri.
Sebuah request
POST /api/bookings HTTP/1.1 ← method, path, version
Host: shop.example.com ← headers start here
Content-Type: application/json
Authorization: Bearer eyJhbGci...
Cookie: session=abc123
← one blank line
{ "venueId": 42, "guests": 2 } ← the bodyHeader itu metadata tentang request: siapa kamu, format body-nya apa, kamu bisa menerima balasan bentuk apa. Body itu muatan sebenarnya, dan hanya sebagian method yang punya body.
Sebuah response
HTTP/1.1 201 Created ← version, status code, reason
Content-Type: application/json
Location: /api/bookings/9001
{ "id": 9001, "venueId": 42, "guests": 2 }Method
| Method | Artinya | Aman? | Idempoten? |
|---|---|---|---|
| GET | Membaca sesuatu | Ya | Ya |
| POST | Membuat sesuatu, atau menjalankan aksi | Tidak | Tidak |
| PUT | Menggantikan sesuatu sepenuhnya | Tidak | Ya |
| PATCH | Mengubah sebagian dari sesuatu | Tidak | Tidak |
| DELETE | Menghapus sesuatu | Tidak | Ya |
Status code: baca angka pertamanya
| Rentang | Arti | Masalah siapa |
|---|---|---|
| 1xx | Informasi, jarang dipakai | — |
| 2xx | Berhasil | Tidak ada |
| 3xx | Cari di tempat lain (redirect) | Tidak ada |
| 4xx | Request-nya salah | Pemanggilnya |
| 5xx | Server-nya rusak | Kamu |
Yang akan terus kamu temui: 200 OK, 201 Created, 204 No Content, redirect 301/302, 400 Bad Request, 401 Unauthorized (kamu belum login), 403 Forbidden (kamu sudah login tapi tidak diizinkan), 404 Not Found, 409 Conflict, 422 Unprocessable Content, 429 Too Many Requests, 500 Internal Server Error, 503 Service Unavailable.
HTTP juga stateless: server tidak mengingat request-mu sebelumnya. Setiap request harus membawa sendiri identitasnya — biasanya sebuah cookie atau header token. Satu fakta itulah alasan session dan autentikasi bekerja seperti sekarang, dan ada satu modul khusus soal itu nanti.
Tugas praktik
Di terminal, jalankan curl -i https://api.github.com/users/octocat. Flag -i menampilkan header response. Temukan status code-nya, content-type-nya, dan header rate-limit apa pun. Lalu jalankan lagi dengan -v dan lihat proses DNS lookup serta TLS handshake terjadi.
Hasil yang diharapkan
`HTTP/2 200`, `content-type: application/json`, dan header `x-ratelimit-*`.
Cek pemahaman
Pilih jawaban dulu