Semester 3 · 4 SKS · 200 menit

HTTP, URL, Request & Response

Pada pertemuan ini kita akan melihat langsung bagaimana browser berkomunikasi dengan server. Setiap konsep dibahas melalui contoh sehari-hari, lalu langsung dicoba menggunakan HTML, PHP, XAMPP, dan Developer Tools.

Konsep → Kasus NyataPrediksi → CodingJalankan → Analisis

Target Pertemuan

Mahasiswa mampu menjelaskan komunikasi browser–server menggunakan HTTP, membaca struktur URL, membedakan GET dan POST, memahami Request dan Response, serta mengenali Header, Body, dan Status Code.

Kode boleh di-copy–paste. Yang tidak boleh di-copy–paste adalah pemahaman.

1. Dari Pertemuan 1 ke Pertemuan 2

User
→
Client / Browser
→
Request
→
Server
→
Response

Pada pertemuan pertama kita sudah membahas peran browser, server, request, dan response. Sekarang kita akan melihat bagaimana browser dan server benar-benar saling berkomunikasi.

2. HTTP dan HTTPS

HTTP adalah aturan komunikasi antara client dan server. Analogi: mahasiswa meminta transkrip kepada bagian akademik; permintaan dapat dipahami karena ada prosedur komunikasi yang disepakati.

HTTP

Aturan komunikasi web.

HTTPS

HTTPS melindungi komunikasi dengan enkripsi melalui TLS. HTTPS tidak otomatis berarti sebuah situs pasti terpercaya.

3. Praktik: Laptop sebagai Server Lokal

Konvensi praktik: seluruh contoh menggunakan alamat dasar http://localhost/web-lanjut/. Simpan semua file praktik di C:\xampp\htdocs\web-lanjut\.

Aktifkan Apache di XAMPP. Buat C:\xampp\htdocs\web-lanjut\index.php.

index.php
<?php
echo "Halo dari server PHP";
?>

Buka http://localhost/web-lanjut/. Localhost menunjuk komputer sendiri; Apache melayani request dan PHP memproses file sebelum hasil dikirim ke browser.

Diskusi: Mengapa file PHP dijalankan melalui localhost, bukan sekadar di-double-click?

4. Membaca URL

http://localhost/web-lanjut/mahasiswa/detail.php?id=25

BagianContohMakna
Protocolhttps://Cara komunikasi
Domainkampus.ac.idAlamat layanan
Path/mahasiswa/detail.phpResource yang dituju
Query Parameter?id=25Informasi tambahan

Analogi: domain seperti gedung, path seperti ruang yang dituju, dan query parameter seperti informasi tambahan tentang apa yang dicari.

5. Query Parameter: Kode Sama, Request Berbeda

produk.php
<?php
$nama = $_GET['nama'] ?? 'Belum ada produk';

echo "<h1>Pencarian Produk</h1>";
echo "Anda mencari: " . $nama;
?>

Coba http://localhost/web-lanjut/produk.php?nama=Laptop, lalu ubah menjadi http://localhost/web-lanjut/produk.php?nama=Mouse. Kode tetap, tetapi request berbeda sehingga response berubah.

Toko online

http://localhost/web-lanjut/produk.php?id=125

SIAKAD

http://localhost/web-lanjut/mahasiswa.php?nim=2301001

Booking

http://localhost/web-lanjut/jadwal.php?tanggal=2026-09-25

6. GET — Meminta Data

GET umum digunakan untuk meminta/mengambil Resource: membuka berita, mencari produk, atau memfilter jadwal.

form.html
<!DOCTYPE html>
<html>
<body>
<h1>Pencarian Produk</h1>

<form action="produk.php" method="GET">
  <label>Nama Produk</label>
  <input type="text" name="nama">
  <button type="submit">Cari</button>
</form>
</body>
</html>

Isi “Laptop ASUS”, tekan Cari, lalu perhatikan URL. Alurnya: Input → Form → GET Request → PHP → Response.

Kasus nyata: pencarian produk pada marketplace cocok untuk memperlihatkan bahwa kata kunci/filter dapat menjadi bagian dari request.

7. POST — Mengirim Data untuk Diproses

POST umum digunakan ketika data dikirim untuk diproses, misalnya login, pendaftaran, atau menambah transaksi.

login.html
<!DOCTYPE html>
<html>
<body>
<h1>Login Mahasiswa</h1>

<form action="login.php" method="POST">
  <label>NIM</label>
  <input type="text" name="nim">
  <br><br>
  <label>Password</label>
  <input type="password" name="password">
  <br><br>
  <button type="submit">Login</button>
</form>
</body>
</html>
login.php
<?php
$nim = $_POST['nim'] ?? '';
$password = $_POST['password'] ?? '';

echo "<h1>Data Diterima Server</h1>";
echo "NIM: " . $nim;
?>

Perhatikan bahwa data tidak muncul sebagai query string seperti GET. Data dapat dibawa melalui request Body.

Penting: POST bukan berarti data otomatis aman. Perlindungan komunikasi tetap membutuhkan HTTPS dan pengamanan aplikasi.

8. GET vs POST dalam Kasus Nyata

AktivitasUmumnyaKonsep
Membuka beritaGETMeminta resource
Mencari produkGETMengambil hasil berdasarkan parameter
Filter jadwalGETMengambil data berdasarkan filter
LoginPOSTMengirim data untuk diproses
PendaftaranPOSTMengirim form
Tambah transaksiPOSTMenjalankan aksi/perubahan

Analogi: GET seperti bertanya “Tampilkan data ini.” POST seperti menyerahkan formulir “Ini data saya, tolong diproses.”

9. Header dan Body

Header

Informasi tambahan seperti jenis data, browser, bahasa, cookie, atau authorization.

Body

Bagian yang dapat membawa isi/data utama request atau response.

Analogi paket: label di luar paket memberi informasi tentang kiriman; isi paket adalah data utamanya.

10. Lihat Request Secara Nyata

Tekan F12 → buka Developer Tools → pilih Network → jalankan form → klik request yang muncul. Cari Request URL, Request Method, Status Code, Request Headers, Response Headers, dan Query String Parameters.

Yang kemarin kita gambar sebagai “request” ternyata benar-benar bisa dilihat.

11. Response — Jawaban Server

Response adalah jawaban server. Google Search: kata kunci → hasil pencarian. SIAKAD: semester 3 → daftar nilai. Presensi: data kehadiran → hasil pemrosesan.

Request
→
Server
→
Process
→
Response

12. Status Code

KodeMakna sederhanaAnalogi
200Berhasil“Bukunya ada.”
201Resource dibuat“Data peminjaman berhasil dibuat.”
400Request bermasalah“Form tidak sesuai.”
401Belum terautentikasi“Login dahulu.”
403Tidak diizinkan“Anda tidak punya izin.”
404Tidak ditemukan“Yang dicari tidak ada.”
500Masalah server“Sistem sedang bermasalah.”
status.php
<?php
http_response_code(404);

echo "<h1>404</h1>";
echo "<p>Data tidak ditemukan.</p>";
?>

Jalankan lalu cek Network. Ubah 404 menjadi 200 dan lihat perbedaannya.

13. Jangan Tertipu Tampilan

eksperimen.php
<?php
http_response_code(500);
?>
<h1>BERHASIL!</h1>
<p>Data berhasil disimpan.</p>

Tampilan dapat berkata “BERHASIL”, tetapi HTTP status-nya 500. Artinya isi halaman dan status komunikasi adalah dua hal berbeda.

14. Mini Challenge

Analisis http://localhost/web-lanjut/produk/detail.php?id=25&kategori=laptop. Tentukan protocol, domain, path, query parameter, lalu jelaskan apa yang kemungkinan diminta kepada server.

Kasus SIAKAD

Mahasiswa memilih semester 3 dan menekan “Tampilkan Nilai”. Tentukan request → process → response.

15. Hubungkan dengan Project Semester

Ambil satu aktivitas dari sistem pilihan Anda. Contoh booking lapangan:

Pilih tanggal
→
GET Request
→
Cari jadwal
→
Response jadwal

Contoh: http://localhost/web-lanjut/jadwal.php?tanggal=2026-09-25. Laundry: http://localhost/web-lanjut/transaksi.php?id=1001. Perpustakaan: http://localhost/web-lanjut/buku.php?id=15.

16. Tugas Project Book — Minggu 2

  1. Buat satu contoh URL sistem Anda dan tandai protocol, host/domain, path, query parameter.
  2. Pilih dua aktivitas: minimal satu GET dan satu POST.
  3. Tulis data/request → proses server → response.
  4. Gambar satu alur User → Browser → Request → Server → Process → Response → Browser → User.
  5. Buat mini coding form.html + proses.php. Boleh dibantu AI, tetapi wajib mampu menjelaskannya.
  6. Analisis ditulis tangan di Project Book, difoto/scan, lalu diunggah ke Google Drive sesuai arahan dosen.

17. Quis

  1. Bedah URL http://localhost/web-lanjut/produk.php?id=25.
  2. Apa perbedaan request dan response? Berikan contoh.
  3. Apa perbedaan sederhana GET dan POST?
  4. Apa arti 200, 404, dan 500?
  5. Pada sistem booking, user memilih tanggal lalu menekan “Cari Jadwal”. Jelaskan request, process, response.

18. Ringkasan

Browser
→
HTTP Request
URL · Method
Header · Body
→
Server / Process
→
HTTP Response
Status · Header · Body
Pertemuan 3: setelah data diterima PHP, bagaimana backend menentukan tindakan? Kita masuk ke Input, Process, Output, Sequence, Condition, dan Repetition.

Glosarium

Istilah bergaris putus-putus pada materi dapat diarahkan kursor untuk menampilkan arti singkat. Pada layar sentuh, istilah dapat disentuh/fokus. Daftar lengkap:

HTTPAturan komunikasi antara client dan server di web.
HTTPSHTTP yang komunikasinya dienkripsi menggunakan TLS.
ClientPihak yang meminta layanan; biasanya browser.
ServerPihak yang menerima request, memproses, lalu mengirim response.
URLAlamat untuk menunjuk resource di web.
ProtocolAturan komunikasi pada URL, misalnya HTTP/HTTPS.
DomainNama/alamat layanan di internet.
PathBagian URL yang menunjuk resource tertentu.
Query ParameterData tambahan pada URL setelah tanda ?.
RequestPermintaan yang dikirim client ke server.
ResponseJawaban server terhadap request.
GETMethod HTTP yang umum dipakai untuk meminta/mengambil resource.
POSTMethod HTTP yang umum dipakai untuk mengirim data agar diproses server.
HeaderInformasi tambahan/metadata pada request atau response.
BodyBagian request/response yang membawa isi atau data.
Status CodeKode angka yang menunjukkan hasil penanganan request.
LocalhostKomputer sendiri ketika dipakai sebagai server lokal.
ApacheWeb server yang dipakai XAMPP untuk melayani request.
PHPBahasa server-side yang diproses sebelum hasil dikirim ke browser.
XAMPPPaket server lokal yang menyediakan Apache dan PHP.
Developer ToolsAlat bawaan browser untuk memeriksa halaman dan komunikasi web.
NetworkPanel Developer Tools untuk melihat request dan response.
TLSTeknologi enkripsi yang digunakan HTTPS.
ResourceHalaman, data, gambar, atau layanan yang diminta melalui web.