Cara Kerja HTTP pada PHP: Siklus Request dan Response

Mekanisme Dasar HTTP dalam PHP

PHP bekerja sebagai bahasa pemrograman sisi server (server-side) yang berinteraksi dengan protokol HTTP melalui siklus request-response. Ketika pengguna mengakses URL melalui browser, browser mengirimkan pesan HTTP Request ke server web (seperti Apache atau Nginx). Server kemudian meneruskan permintaan tersebut ke PHP melalui antarmuka seperti PHP-FPM atau modul mod_php. PHP memproses skrip, berinteraksi dengan database jika diperlukan, dan menghasilkan output (biasanya HTML) yang dikirim kembali ke browser sebagai HTTP Response.

Siklus Hidup Request-Response

Proses ini terjadi dalam hitungan milidetik. Berikut adalah tahapan teknis yang terjadi di balik layar:

TahapAktorTindakan
1. RequestBrowserMengirim HTTP Request (GET/POST) ke server.
2. RoutingWeb ServerMenerima request dan meneruskannya ke interpreter PHP.
3. EksekusiPHP EngineMenjalankan skrip, memproses logika, dan query database.
4. OutputPHP EngineMenghasilkan data (HTML/JSON) dan header HTTP.
5. ResponseWeb ServerMengirimkan data kembali ke browser klien.

Implementasi Header HTTP di PHP

PHP memungkinkan pengembang untuk memanipulasi header HTTP secara langsung menggunakan fungsi header(). Hal ini krusial untuk menentukan tipe konten, status kode, atau manajemen sesi (cookies).

<?php
// Mengatur status kode 404
header("HTTP/1.1 404 Not Found");

// Mengatur tipe konten menjadi JSON
header("Content-Type: application/json");

// Mengirim data response
echo json_encode(["status" => "error", "message" => "Data tidak ditemukan"]);
exit();
?>

Variabel Superglobal dalam HTTP

PHP menyediakan variabel superglobal untuk menangkap data dari HTTP Request secara otomatis:

  • $_GET: Menangkap data dari query string URL.
  • $_POST: Menangkap data dari body request (biasanya form).
  • $_SERVER: Berisi informasi server, header request, dan path skrip.
  • $_COOKIE: Mengakses data cookie yang dikirim klien.

Troubleshooting Umum

Masalah paling sering terjadi adalah pengiriman output sebelum header. Ingatlah bahwa fungsi header() harus dipanggil sebelum ada output (seperti echo atau spasi di luar tag PHP) dikirim ke browser. Jika terjadi error "Headers already sent", periksa apakah ada spasi atau karakter tersembunyi sebelum tag pembuka <?php.