0Pricing
PHP Academy · Pelajaran

GET vs POST: Kapan Menggunakan Masing-Masing

Pahami perbedaan antara HTTP GET dan POST dalam PHP.

GET vs POST: Kapan Menggunakan Masing-Masing adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Metode HTTP dalam PHP Web

Saat peramban mengirimkan formulir HTML, peramban menggunakan metode HTTP GET atau POST. PHP menangkap data yang dikirim melalui superglobal:

  • $_GET — data ditambahkan ke URL
  • $_POST — data berada di isi permintaan

Metode GET

GET menambahkan data formulir sebagai parameter string kueri ke URL:

<!-- HTML form -->
<form method="GET" action="search.php">
    <input name="query" type="text">
    <button type="submit">Search</button>
</form>

<!-- URL becomes: search.php?query=php+tutorial -->

<?php
$q = $_GET['query'] ?? '';
echo 'You searched for: ' . htmlspecialchars($q);

Metode POST

POST mengirimkan data dalam isi permintaan HTTP — tidak terlihat di URL:

<!-- HTML form -->
<form method="POST" action="login.php">
    <input name="email" type="email">
    <input name="password" type="password">
    <button type="submit">Log In</button>
</form>

<?php
$email    = $_POST['email']    ?? '';
$password = $_POST['password'] ?? '';

Kapan Menggunakan GET

Gunakan GET jika:

  • Permintaan bersifat idempoten (tidak menimbulkan efek samping)
  • Data boleh muncul di URL — kueri pencarian, filter, dan paginasi
  • Anda menginginkan URL yang dapat ditandai atau dibagikan
  • Data tidak bersifat sensitif

Kapan Menggunakan POST

Gunakan POST jika:

  • Permintaan mengubah keadaan server (membuat, memperbarui, atau menghapus)
  • Data bersifat sensitif (kata sandi, informasi pribadi)
  • Anda mengirimkan data dalam jumlah besar (berkas, teks panjang)
  • Anda tidak ingin data disimpan dalam cache oleh peramban atau proksi

Batas Panjang GET

Permintaan GET memiliki batas panjang URL (biasanya sekitar 2000 karakter dalam praktiknya). POST tidak memiliki batas praktis selain konfigurasi server:

<?php
// php.ini settings for POST limits:
// post_max_size = 8M   (total POST body size)
// upload_max_filesize = 2M

// Check current limits at runtime:
echo ini_get('post_max_size');        // 8M
echo ini_get('upload_max_filesize');  // 2M

Superglobal Permintaan

$_REQUEST menggabungkan $_GET, $_POST, dan $_COOKIE. Praktis, tetapi sumber data menjadi kurang jelas:

<?php
// Works for both GET and POST but is ambiguous
$name = $_REQUEST['name'] ?? '';

// Better: be explicit about the expected method
$name = match($_SERVER['REQUEST_METHOD']) {
    'GET'  => $_GET['name']  ?? '',
    'POST' => $_POST['name'] ?? '',
    default => '',
};

Memeriksa Metode Permintaan

Selalu periksa metode permintaan sebelum memproses data formulir:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    if (!empty($name)) {
        echo 'Hello, ' . htmlspecialchars($name);
    }
} else {
    // Show empty form
}

HTTPS dan Keamanan Data

Meskipun menggunakan POST, data terlihat sebagai teks biasa kecuali Anda menggunakan HTTPS. Aturan keamanan penting:

  • Selalu gunakan HTTPS di lingkungan produksi
  • Jangan pernah mengirim kata sandi melalui GET
  • POST melalui HTTP tetap tidak aman — HTTPS juga mengenkripsi isi permintaan

Mengalihkan Setelah POST (Pola PRG)

Setelah POST berhasil, alihkan ke permintaan GET untuk mencegah pengiriman ganda saat halaman dimuat ulang:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Process the form...
    $id = saveToDatabase($_POST);
    
    // Post-Redirect-Get (PRG) pattern
    header('Location: /success.php?id=' . $id);
    exit;
}

Formulir Multipart untuk Unggah Berkas

Untuk mengunggah berkas, formulir harus menggunakan enctype="multipart/form-data" bersama POST:

<!-- Required for file uploads -->
<form method="POST" action="upload.php"
      enctype="multipart/form-data">
    <input type="file" name="avatar">
    <button type="submit">Upload</button>
</form>

<?php
$file = $_FILES['avatar'];
echo $file['name'];  // original filename

Pemeriksaan Singkat

Metode HTTP mana yang sebaiknya digunakan saat mengirimkan formulir masuk dengan nama pengguna dan kata sandi?

Ringkasan: GET vs POST

Perbedaan penting:

  • GET — berada di URL, dapat ditandai, tanpa efek samping, ukuran terbatas
  • POST — berada di isi permintaan, untuk data sensitif, tanpa batas URL
  • Selalu gunakan HTTPS untuk melindungi data GET dan POST
  • Periksa $_SERVER['REQUEST_METHOD'] sebelum memproses
  • Terapkan pola PRG untuk mencegah pengiriman POST ganda

Pertanyaan yang Sering Diajukan

Apakah pelajaran “GET vs POST: Kapan Menggunakan Masing-Masing” gratis?

Ya — teks lengkap “GET vs POST: Kapan Menggunakan Masing-Masing” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “GET vs POST: Kapan Menggunakan Masing-Masing”?

Pahami perbedaan antara HTTP GET dan POST dalam PHP. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “GET vs POST: Kapan Menggunakan Masing-Masing” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. GET vs POST: Kapan Menggunakan Masing-Masing
  2. Membaca Data Formulir dengan Superglobal
  3. Teknik Validasi Input
  4. Membersihkan Input Pengguna
← Kembali ke PHP Academy