HTML <form> properti method
Definisi dan penggunaan
method
Properti menentukan bagaimana data formulir dikirim (data formulir akan dikirim ke halaman yang ditentukan oleh properti action)
Data formulir dapat dikirim sebagai variabel URL (dengan method="get") atau sebagai transaksi HTTP POST (dengan method="post")
Keterangan tentang GET:
- Tambahkan data formulir dalam bentuk pasangan nama/nilai ke URL
- URL memiliki batas panjang (kira-kira 3000 karakter)
- Jangan gunakan GET untuk mengirim data sensitif! (akan terlihat di URL)
- Berguna bagi formulir pengiriman yang pengguna ingin menambahkan hasilnya sebagai bookmark
- GET lebih cocok untuk data yang tidak aman, seperti string query di Google.
Keterangan tentang POST:
- Tambahkan data formulir ke dalam isian permintaan HTTP (data tidak akan muncul di URL).
- Tidak ada batas ukuran.
- Formulir yang dikirimkan menggunakan POST tidak dapat ditambahkan ke bookmark.
Contoh
Contoh 1
Kirim formulir menggunakan metode "get":
<form action="/action_page.php" method="get"> <label for="fname">Nama:</label> <input type="text" id="fname" name="fname"><br><br> <label for="lname">Keluarga:</label> <input type="text" id="lname" name="lname"><br><br> <input type="submit" value="Kirim"> </form>
Contoh 2
Kirim formulir menggunakan metode "post":
<form action="/action_page.php" method="post"> <label for="fname">Nama:</label> <input type="text" id="fname" name="fname"><br><br> <label for="lname">Keluarga:</label> <input type="text" id="lname" name="lname"><br><br> <input type="submit" value="Kirim"> </form>
Sintaks
<form method="get|post">
Nilai atribut
Nilai | Deskripsi |
---|---|
get | Default. Menempelkan data formulir dalam bentuk pasangan nama/nilai ke URL: URL?name=value&name=value. |
post | Kirimkan data formulir sebagai transaksi HTTP POST. |
Penjelasan atribut method
Browser mengirimkan data di dalam formulir ke server untuk diproses menggunakan metode yang diset di atribut method. Ada dua metode: metode POST dan metode GET.
Jika menggunakan metode POST, browser akan mengirimkan data dalam dua tahap di bawah ini. Pertama, browser akan menghubungkan ke server pengelola formulir yang ditentukan oleh atribut aksi, setelah hubungan dibuat, browser akan mengirimkan data ke server dengan metode transmisi bersegmen.
Pada server, setelah aplikasi gaya POST mulai berjalan, parameter harus dibaca dari posisi tanda pengenal, dan sebelum parameter dapat digunakan dalam aplikasi, parameter harus dicek. Server khusus pengguna akan menentukan bagaimana aplikasi menerima parameter ini.
Ada situasi lain yang menggunakan metode GET, ketika ini browser akan menghubungkan ke server pengelola formulir, lalu mengirimkan semua data formulir dalam tahap transmisi tunggal: browser akan menempelkan data langsung setelah URL aksi formulir. Keduanya dipisahkan dengan tanda tanya.
Browser biasanya dapat mengirim informasi formulir melalui metode di atas, sementara beberapa server hanya menerima data yang disediakan oleh salah satu metode. Dapat disebutkan metode yang digunakan untuk mengolah data server formulir di dalam atribut method (metode) tag <form>, sehingga POST atau GET digunakan.
POST atau GET?
Jika server pengolahan formulir mendukung baik metode POST maupun GET, yang mana metode yang Anda pilih? Berikut adalah beberapa aturan tentang hal ini:
- Jika ingin mendapatkan performa pengiriman formulir yang terbaik, Anda dapat menggunakan metode GET untuk mengirim formulir yang kecil dan hanya memiliki beberapa field singkat.
- Beberapa sistem operasi server hanya membatasi jumlah dan panjang parameter yang dapat diangkut langsung ke aplikasi, dalam kasus ini, untuk formulir yang memiliki banyak field atau domain teks yang panjang, Anda harus menggunakan metode POST untuk mengirimkan.
- Jika Anda belum mendapatkan pengalaman yang cukup dalam menulis aplikasi pengolahan formulir sisi server, Anda harus memilih metode GET. Jika menggunakan metode POST, Anda harus melakukan kerja ekstra dalam membaca dan mengodekan metode, meskipun ini mungkin bukan suatu hal yang sulit, tetapi mungkin Anda tidak mau menghadapi masalah ini.
- Jika keamanan adalah masalah, kami menyarankan untuk memilih metode POST. Metode GET akan menempatkan parameter formulir langsung di dalam URL aplikasi, sehingga peneliti jaringan dapat dengan mudah menangkap mereka dan dapat diambil dari catatan log server. Jika parameter termasuk informasi sensitif seperti nomor kartu kredit, hal ini dapat mengancam keamanan pengguna tanpa mereka sadar. Sementara itu, aplikasi POST tidak memiliki kelebihan keamanan, dan setidaknya dapat mengambil metode enkripsi dalam mengirim parameter sebagai transaksi yang terpisah ke server untuk diproses.
- Jika Anda ingin memanggil aplikasi server sisi server di luar formulir dan termasuk proses memasukkan parameter, Anda harus menggunakan metode GET, karena metode ini memungkinkan untuk menyertakan formulir seperti parameter sebagai bagian dari URL. Sementara itu, aplikasi yang menggunakan gaya POST hanya ingin ada proses transmisi ekstra dari browser ke belakang URL, di mana konten transmisi ini tidak dapat digunakan sebagai konten tag <a> tradisional.
Pemilihan yang jelas
Beberapa saran di atas juga dapat digunakan sebagai penjelasan tentang pilihan cara ini. Dengan asumsi bahwa Anda memiliki formulir yang sangat sederhana, yang hanya mengandung parameter x dan y. Dalam mengkode nilai elemen ini, bentuknya seperti yang ditunjukkan di bawah ini:
x=28&y=66
Jika formulir menggunakan method=GET, URL yang digunakan untuk merujuk aplikasi server sisi server akan seperti yang ditunjukkan di bawah ini:
http://www.example.com/example/program?x=28&y=66
Pada setiap waktu kita dapat membuat sebuah tag <a> tradisional, untuk menggunakannya dalam memanggil formulir dengan nilai parameter yang dibutuhkan, bentuknya seperti yang ditunjukkan di bawah ini:
<a href="http://www.example.com/example/program?x=28&y=66">
Masalah tunggalnya adalah simbol & yang digunakan untuk memisahkan parameter juga adalah simbol entitas. Jika simbol & disisipkan dalam atribut href <a> tag, peramban akan mengganti karakter yang berikutnya dengan entitas karakter yang sesuai.
Untuk mencegah hal ini, kita harus menggantikan simbol & dengan ekvivalen entitasnya, yaitu dengan "&" atau "&" untuk menggantikannya. Setelah diganti, referensi server aplikasi non-form yang disebutkan di atas akan seperti berikut:
<a href="http://www.example.com/example/program?x=28&y=66">
Karena hal ini masih belum dapat digunakan dalam URL simbol & dan mungkin akan mengakibatkan kebingungan di masa mendatang, sehingga kami mendorong server untuk mengatur untuk menerima tanda koma sebagai penanda pemisah parameter. Anda juga dapat melihat dokumen server Anda untuk mengetahui apakah server mendukung fungsi ini.
Dukungan Peramban
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
Dukungan | Dukungan | Dukungan | Dukungan | Dukungan |