Metode permintaan HTML

Apa itu HTTP?

Protokol Transfer HyperTekst (Hypertext Transfer Protocol, disingkat HTTP) dirancang untuk memungkinkan komunikasi antara klien dan server.

HTTP bertindak sebagai protokol permintaan-tanggapan antara klien dan server.

Contoh: Klien (browser) mengirim permintaan HTTP ke server; kemudian server mengembalikan tanggapan ke klien. Tanggapan mengandung informasi tentang status permintaan, mungkin juga mengandung konten yang diminta.

Metode HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

Dua metode yang paling sering digunakan adalah: GET dan POST.

Metode GET

GET digunakan untuk meminta data dari resource yang ditentukan.

GET adalah salah satu metode HTTP yang paling sering digunakan.

Perhatikan bahwa string pencarian (pasangan nama/nilai) dikirim di URL permintaan GET:

/test/demo_form.php?name1=value1&name2=value2

Beberapa catatan lain tentang permintaan GET:

  • Permintaan GET dapat disimpan di penyimpanan
  • Permintaan GET disimpan di riwayat browser
  • Permintaan GET dapat disimpan sebagai bookmark
  • Permintaan GET tidak harus digunakan saat menghandle data sensitif
  • Permintaan GET memiliki batas panjang
  • Permintaan GET harus digunakan hanya untuk mengambil data (tidak mengubah).

Metode POST

POST digunakan untuk mengirim data ke server untuk menciptakan/merubah sumber daya.

Data yang dikirim ke server melalui POST disimpan di isian permintaan HTTP:

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST adalah salah satu metode HTTP yang paling sering digunakan.

Beberapa catatan lain tentang permintaan POST:

  • Permintaan POST tidak dapat disimpan di penyimpanan
  • Permintaan POST tidak disimpan di riwayat browser
  • POST tidak dapat disimpan sebagai bookmark
  • Permintaan POST tidak mempunyai persyaratan panjangnya data

Metode PUT

PUT digunakan untuk mengirim data ke server untuk menciptakan/merubah sumber daya.

Perbedaan antara POST dan PUT adalah bahwa permintaan PUT adalah idempotent (tidak dapat diulang). Arti nya adalah bahwa pemanggilan permintaan PUT yang sama berulang kali akan selalu menghasilkan hasil yang sama. Sebaliknya, pemanggilan permintaan POST berulang kali memiliki efek samping untuk menciptakan sumber daya yang sama berulang kali.

Metode HEAD

HEAD hampir sama dengan GET, tetapi tanpa isian tanggapan.

Dengan kata lain, jika permintaan GET /users mengembalikan daftar pengguna, maka permintaan HEAD /users akan mengirim permintaan yang sama, tetapi tidak mengembalikan daftar pengguna.

Permintaan HEAD sangat bermanfaat untuk memeriksa konten yang akan dikembalikan permintaan GET sebelum mengirim permintaan GET sebenarnya (misalnya sebelum mengunduh berkas besar atau sebelum mengirim isian tanggapan).

Metode DELETE

Metode DELETE menghapus sumber daya yang ditentukan.

Metode OPTIONS

Metode OPTIONS mendeskripsikan opsi komunikasi sumber daya tujuan.

Membandingkan GET dengan POST

Tabel di bawah ini membandingkan dua metode HTTP: GET dan POST.

  GET POST
Tombol mundur/refres Tidak berbahaya Data akan disubmit kembali (browser seharusnya memberitahu pengguna bahwa data akan disubmit kembali).
Bookmark Dapat disimpan sebagai bookmark Tidak dapat disimpan sebagai bookmark
Penyimpanan Dapat disimpan di penuh Tidak dapat disimpan
Tipe Enkoding application/x-www-form-urlencoded application/x-www-form-urlencoded atau multipart/form-data. Gunakan enkoding multipel untuk data biner.
Riwayat Parameter disimpan di riwayat browser. Parameter tidak disimpan di riwayat browser.
Batasan Panjang Data Ya. Saat mengirim data, metode GET menambahkan data ke URL; panjang URL terbatas (panjang maksimal URL adalah 2048 karakter). Tidak ada batasan.
Batasan Tipe Data Hanya mengizinkan karakter ASCII. Tidak ada batasan. Juga mengizinkan data biner.
Keamanan

Dibandingkan dengan POST, GET memiliki keamanan yang lebih rendah, karena data yang dikirim adalah bagian dari URL.

Jangan pernah gunakan GET untuk mengirimkan sandi atau informasi sensitif lainnya!

POST lebih aman daripada GET, karena parameter tidak akan disimpan di riwayat browser atau log server web.
Keterlihatan Data dapat dilihat oleh siapa pun di URL. Data tidak akan muncul di URL.