Materi
HTTP adalah protokol klien-server: klien, misalnya peramban atau program, mengirim permintaan, lalu server menjawab dengan satu respons. MDN menegaskan bahwa permintaan selalu dimulai dari klien. Kelas Jaringan Dasar sudah membahas bagaimana DNS mencari alamat server dan bagaimana sambungan TCP dibuka; kelas ini mulai dari apa yang dikirim lewat sambungan itu. API web adalah server yang jawabannya ditujukan untuk program, misalnya data pesanan dalam JSON, bukan halaman untuk dibaca manusia.
Pesan permintaan HTTP/1.1 terdiri atas baris permintaan (metode, target, versi), header satu per baris dengan bentuk Nama: nilai, satu baris kosong, lalu badan pesan bila ada. Respons berbentuk sama, tetapi baris pertamanya baris status: versi, kode status tiga digit, dan frasa alasan. RFC 9112 menyatakan frasa alasan opsional, dan RFC 9110 menyebutnya hanya anjuran yang boleh diganti atau dihilangkan. Program memutuskan dari kodenya, bukan dari teks frasanya.
GET /jadwal?kota=Bogor HTTP/1.1
Host: api.kereta.example
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 27
{"kota":"Bogor","jam":6}Nama header tidak membedakan huruf besar dan kecil (RFC 9110 §5.1): Content-Type, content-type, dan CONTENT-TYPE adalah header yang sama. Nilainya dipisah dari nama oleh titik dua pertama, dan nilai itu sendiri boleh memuat titik dua, misalnya header Date yang berisi jam. Kode yang membaca header karena itu menyamakan huruf namanya lebih dulu dan hanya memotong di titik dua pertama.