Metode, kode status, dan header

Cara membaca request HTTP sebagai profesional QA: makna metode, kode status, dan header serta defect yang dapat cepat ditemukan darinya.

Diperbarui:

Daftar isi

Metode, kode status, dan header adalah tiga sinyal paling berguna dalam request serta respons HTTP. QA sering dapat memahami banyak hal sebelum membaca body dengan memeriksa ketiganya.

Pemula biasanya berfokus pada data respons: apakah JSON diterima dan apakah kolom ada atau tidak. Ini penting, tetapi pahami dahulu hal mendasar: tujuan klien, interpretasi server, dan konteks teknis request. Metode, kode status, dan header menyediakan informasi itu.

Kemampuan menafsirkannya dengan yakin mempercepat penyelidikan defect.

Metode

Metode HTTP menyatakan maksud klien: apa yang dicoba dilakukan, bukan hasilnya.

  • →GET — mengambil data.
  • →POST — membuat entitas atau memicu tindakan.
  • →PUT — mengganti sumber daya sepenuhnya.
  • →PATCH — memperbarui sebagian sumber daya.
  • →DELETE — menghapus sumber daya atau menandainya tidak aktif.

Tim tidak selalu menggunakan metode secara sempurna; pertimbangkan kenyataan itu. Namun QA tetap harus memahami maknanya. Jika klien mengirim GET lalu data berubah, hal itu perlu diperhatikan. Pembuatan entitas melalui GET melanggar konvensi API serta ekspektasi cache, keterulangan, dan keamanan operasi.

Konsep penting lainnya adalah idempotensi. Sebagian metode dapat diulang tanpa mengubah hasil yang dimaksud; sebagian tidak. Ini penting untuk retry, klik berulang, jaringan tidak stabil, dan pengujian otomatis. Pengiriman request yang sama dua kali secara tidak sengaja dapat berdampak berbeda pada POST dan PUT; pemeriksaan harus memperhitungkannya.

Kode status

Kode status adalah ringkasan teknis singkat pemrosesan request. Kode tidak menjelaskan semuanya tetapi langsung menunjukkan kategori hasil.

  • →1xx — informasi teknis sementara.
  • →2xx — request berhasil diproses.
  • →3xx — diperlukan redirect atau langkah tambahan.
  • →4xx — masalah request, data, atau akses klien.
  • →5xx — kesalahan sisi server.

Kategori ini cukup bagi QA untuk memahami situasi awal. Penguji terampil melangkah lebih jauh dan memahami kode individual yang umum.

  • →200 OK — request berhasil.
  • →201 Created — entitas dibuat.
  • →204 No Content — operasi berhasil, tanpa body respons.
  • →301 / 302 / 307 / 308 — redirect.
  • →400 Bad Request — server tidak menerima request dalam bentuk saat ini.
  • →401 Unauthorized — klien belum terautentikasi dengan benar.
  • →403 Forbidden — klien dikenali tetapi tidak memiliki akses.
  • →404 Not Found — sumber daya tidak ditemukan.
  • →409 Conflict — konflik keadaan.
  • →422 Unprocessable Content — struktur request valid, tetapi makna bisnis atau datanya gagal validasi.
  • →500 Internal Server Error — kesalahan internal server.
  • →502, 503, 504 — masalah batas layanan, kelebihan beban, atau ketersediaan.

Tujuannya memahami bagaimana kode membantu mengisolasi masalah, bukan menghafal seluruh tabel.

Contohnya, 401 dan 403 berbeda makna. 404 dapat berarti “URL ini tidak ada” atau “entitas ini tidak ada”. 200 tidak menjamin logika bisnis benar. 500 tidak menunjuk lokasi kegagalan tepat, tetapi cepat menunjukkan bahwa masalah melampaui formulir frontend.

Mengapa 200 OK saja tidak banyak menjamin

Jebakan umum adalah menganggap API yang mengembalikan 200 berarti semuanya baik-baik saja.

  • →Mengembalikan data salah.
  • →Mengembalikan daftar kosong padahal objek diharapkan.
  • →Menyembunyikan kesalahan bisnis dalam kolom error.
  • →Menjalankan operasi hanya sebagian.
  • →Mengembalikan data lama dari cache.

Karena itu, QA selalu menafsirkan kode status bersama body respons dan konteks skenario. Keberhasilan teknis tidak selalu berarti perilaku produk benar.

Header memberikan konteks tambahan untuk request dan respons. Header sering terlihat sekunder sampai Anda menyelidiki masalah nyata.

  • →Tipe data (Content-Type).
  • →Format respons yang diharapkan (Accept).
  • →Otorisasi (Authorization).
  • →Cookie.
  • →Bahasa atau locale.
  • →Cache (Cache-Control, ETag, If-None-Match).
  • →ID korelasi.
  • →Kebijakan CORS.
  • →Kebijakan keamanan.

Header penting bagi QA karena sering menjelaskan bug yang tampak “aneh”.

  • →Backend mengharapkan application/json, tetapi klien mengirim Content-Type lain.
  • →Token tersedia tetapi dikirim pada header salah.
  • →Cookie tidak tiba atau tidak tersimpan.
  • →Cache mengembalikan versi data lama.
  • →Browser memblokir request karena CORS.
  • →Reverse proxy menulis ulang sebagian header.
  • →Request menyebut satu locale tetapi respons menggunakan locale lain.

Header merupakan bagian penting protokol yang membawa konteks esensial. Tanpanya, request dapat valid secara teknis tetapi salah secara logika.

Manfaat praktis bagi QA

Pertimbangkan bug: pengguna tidak dapat menyimpan profil.

UI hanya menunjukkan satu pesan kesalahan. Sinyal HTTP dapat mengungkap situasi sangat berbeda:

  • →Request PATCH dikirim, tetapi server mengembalikan 400 karena kolom tidak valid.
  • →Request dikirim sebagai POST padahal backend mengharapkan PATCH.
  • →Server mengembalikan 403 karena peran tidak memiliki izin yang diperlukan.
  • →Klien mengirim Content-Type salah.
  • →Operasi berhasil tetapi frontend tidak dapat menangani 204 No Content.
  • →Request berhasil tetapi cache atau pemuatan ulang halaman menampilkan data lama.

Semuanya dapat tampak seperti satu bug “profil tidak tersimpan”. Bagi tim, itu enam kelas masalah berbeda. Metode, kode status, dan header membantu menentukan arah penyelidikan.

Apa yang perlu diperiksa QA

  • →Metode yang digunakan.
  • →URL yang dipanggil.
  • →Header penting yang dikirim.
  • →Kode status yang dikembalikan.
  • →Header yang diterima.
  • →Apakah body sesuai dengan makna skenario.

Dengan pendekatan sistematis, log jaringan tidak lagi tampak seperti “derau” dan mulai memperlihatkan struktur jelas.

Hal penting bagi QA

  • →Metode menyatakan maksud klien.
  • →Kode status melaporkan hasil teknis pemrosesan.
  • →Header menyampaikan konteks penting request dan respons.
  • →200 OK tidak menjamin skenario bisnis selesai dengan benar.
  • →Banyak defect lebih mudah diisolasi ketika metode, status, dan header ditafsirkan bersama.

Bacaan lanjutan

  • →Dalam basis pengetahuan ini: HTTP dan HTTPS
  • →Dalam basis pengetahuan ini: Autentikasi dan otorisasi
  • →Sumber eksternal: Kode status respons HTTP MDN