Parser Pesan HTTP
Mengurai dan memeriksa pesan HTTP/1.x dan HTTP/2 termasuk permintaan, respons, dan output verbose curl. Melihat header, kode status, dan body dalam format terstruktur. Mendukung deteksi otomatis tipe body untuk konten JSON, HTML, dan XML.
Spesifikasi
Kasus Penggunaan Umum
- Debug permintaan HTTP dari tab jaringan browser
- Menganalisis respons API
- Mengurai output curl -v untuk pemecahan masalah
- Memeriksa payload webhook
- Meninjau header HTTP untuk analisis keamanan
Fitur
- Mengurai permintaan dan respons HTTP/1.x dan HTTP/2
- Mengurai format output curl -v verbose
- Menampilkan kode status dengan kategori berkode warna (2xx, 3xx, 4xx, 5xx)
- Memisahkan header permintaan dan respons untuk output curl
- Deteksi otomatis tipe konten body (JSON, HTML, XML)
- Rendering alat body dinamis (lazy-loads JSONTool, HTMLTool, dll. untuk konten body)
- Perluas/ciutkan bagian body
- Salin header atau body ke clipboard
Contoh
Permintaan HTTP GET
Coba →Permintaan GET sederhana dengan header
GET /api/users HTTP/1.1
Host: example.com
Accept: application/json
Authorization: Bearer token123Respons HTTP
Coba →Respons 200 OK dengan body JSON
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 27
{"name":"John","age":30}Output curl -v
Coba →Output curl verbose dengan permintaan dan respons
* Trying 93.184.216.34:443...
* Connected to example.com
> GET /api HTTP/1.1
> Host: example.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
<
{"status":"ok"}Tips
- Tempelkan output curl -v langsung - header permintaan dan respons diurai secara terpisah.
- Klik "Decode sebagai JSON/HTML/XML" untuk merantai body ke decoder yang sesuai.
- Kode status berkode warna: hijau (2xx), biru (3xx), kuning (4xx), merah (5xx).
Pemahaman Parser Pesan HTTP
Pesan HTTP adalah unit komunikasi fundamental dalam Hypertext Transfer Protocol. Setiap interaksi antara klien web dan server terdiri dari pesan permintaan dan pesan respons. Memahami strukturnya sangat penting untuk debugging API, menganalisis lalu lintas jaringan, dan membangun layanan web.
Permintaan HTTP dimulai dengan baris permintaan yang berisi method (GET, POST, PUT, DELETE), path target, dan versi protokol. Ini diikuti oleh field header (pasangan kunci-nilai), baris kosong, dan body opsional. Method menunjukkan tindakan yang dimaksud: GET mengambil data, POST mengirimkan data, PUT mengganti sumber daya, DELETE menghapusnya, dan PATCH memperbarui sebagian.
Respons HTTP dimulai dengan baris status yang berisi versi protokol, kode status tiga digit, dan frasa alasan. Kode status dikelompokkan berdasarkan kelas: 2xx untuk sukses (200 OK, 201 Created), 3xx untuk pengalihan (301 Moved, 304 Not Modified), 4xx untuk error klien (400 Bad Request, 401 Unauthorized, 404 Not Found), dan 5xx untuk error server (500 Internal Server Error, 502 Bad Gateway).
Alat baris perintah curl dengan flag -v (verbose) menampilkan permintaan dan respons dalam format khas menggunakan > untuk data yang dikirim dan < untuk data yang diterima. Format output ini adalah salah satu cara paling umum developer menemukan pesan HTTP mentah, menjadikan penguraian curl -v sebagai kemampuan debugging yang penting.
HTTP/1.1 berbasis teks dan mengirim satu permintaan per koneksi TCP pada satu waktu (pipelining ada tetapi tidak didukung dengan baik). HTTP/2 adalah protokol biner yang memultipleks beberapa permintaan melalui satu koneksi, mendukung server push, dan mengompresi header dengan HPACK. HTTP/2 secara signifikan mengurangi latensi untuk situs web modern. Semantiknya — method, kode status, dan header — tetap sama di kedua versi; hanya format wire yang berbeda.
Dalam output curl -v, baris yang dimulai dengan > adalah data yang dikirim ke server (permintaan), baris yang dimulai dengan < adalah data yang diterima dari server (respons), dan baris yang dimulai dengan * adalah pesan informasi curl tentang detail koneksi dan negosiasi TLS. Baris kosong yang hanya berisi > atau < memisahkan header dari body. Alat ini mengurai ketiga bagian secara otomatis.
Kode status mengikuti skema numerik yang terdefinisi dengan baik: kode 1xx bersifat informasional (100 Continue), 2xx menunjukkan sukses (200 OK, 201 Created, 204 No Content), 3xx menandakan pengalihan (301 Permanent, 302 Found, 304 Not Modified), 4xx merepresentasikan error klien (400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests), dan 5xx mencakup error server (500 Internal Error, 502 Bad Gateway, 503 Service Unavailable).