HTML <form> atribut method

Definisi dan penggunaan

method Atribut menentukan bagaimana data borang akan dihantar (data borang akan dihantar ke halaman yang ditentukan oleh atribut action)

Data borang boleh dihantar sebagai variable URL (menggunakan method="get") atau sebagai transaksi HTTP POST (menggunakan method="post")

Pertentangan tentang GET:

  • Tambahkan data borang dalam bentuk pasangan nama/nilai ke URL
  • URL mempunyai had panjang (kira-kira 3000 aksara)
  • Jangan gunakan GET untuk menghantar data sensitif! (Dapat dilihat di URL)
  • Penting bagi pengguna yang ingin menambahkan hasil ke bookmark penghantaran borang
  • GET lebih sesuai untuk data yang tidak aman, seperti string carian di Google.

Rujukan tentang POST:

  • Menambah data borang ke dalam bawah permintaan HTTP (data tidak akan dipaparkan di URL).
  • Tiada had ukuran.
  • Borang yang disampaikan menggunakan POST tidak dapat disimpan dalam penanda tangan.

Contoh

Contoh 1

Hantar borang menggunakan kaedah "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">Nama keluarga:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Hantar">
</form>

Cuba sendiri

Contoh 2

Hantar borang menggunakan kaedah "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">Nama keluarga:</label>
  <input type="text" id="lname" name="lname"><br><br>
  <input type="submit" value="Hantar">
</form>

Cuba sendiri

Syarat

<form method="get|post">

Nilai sifat

Nilai Penerangan
get Lalai. Menempelkan data borang dalam bentuk pasangan nama/nilai ke URL: URL?nama=nilai&nama=nilai.
post Hantar data borang sebagai transaksi HTTP post.

Rangkaian sifat method

Pelayar menghantar data daripada data borang kepada pelayan untuk diproses menggunakan kaedah yang diset di sifat method. Ada dua kaedah: kaedah POST dan kaedah GET.

Jika menggunakan kaedah POST, pelayar akan menghantar data dalam dua langkah di bawah. Pada mulanya, pelayar akan membuat hubungan dengan pelayan pemrosesan borang yang ditentukan di sifat action, selepas hubungan diwujudkan, pelayar akan menghantar data kepada pelayan dengan kaedah penghantaran berperalihan.

Pada pihak pelayan, sekiranya aplikasi gaya POST bermula untuk dijalankan, parameter harus diambil dari posisi tanda pengecam, dan sekiranya parameter dijumpai, parameter itu mesti disahkodkan sebelum aplikasi dapat menggunakan nilai borang ini. Pelayan khusus pengguna akan menentukan dengan jelas bagaimana aplikasi mesti menerima parameter ini.

Jenis lainnya adalah menggunakan kaedah GET, di mana pelayar akan membuat sambungan dengan pelayan pemrosesan borang, lalu menghantar semua data borang dalam langkah penghantaran yang sama: pelayar akan menempelkan data secara langsung di belakang URL tindakan borang. Kedua-dua antara mereka disepanjang dengan tanda soalan.

Pelayar biasanya boleh menghantar maklumat borang melalui mana-mana kaedah di atas, tetapi beberapa pelayan hanya menerima data yang disediakan oleh salah satu kaedah. Anda boleh menentukan kaedah yang akan digunakan pelayan pengendalian borang untuk memproses data dalam atribut method (kaedah) tag <form>.

POST atau GET?

Jika pelayan pengendalian borang mendukung baik kaedah POST seperti juga kaedah GET, yang kaedah mana anda sepatutnya memilih? Berikut adalah beberapa aturan yang berkenaan:

  • Jika anda mahu mendapatkan penghantaran borang yang paling baik, anda boleh menggunakan kaedah GET untuk menghantar borang yang kecil dengan hanya beberapa medan singkat.
  • Beberapa sistem operasi pelayan akan menghadapkan bilangan dan panjang parameter yang dapat disampaikan kepada aplikasi, dalam keadaan ini, untuk borang yang mempunyai banyak medan atau medan teks yang panjang, kaedah POST sepatutnya digunakan untuk menghantar.
  • Jika anda kurang berpengalaman dalam menulis aplikasi pengendalian borang pihak berlayar, anda sepatutnya memilih kaedah GET. Jika anda menggunakan kaedah POST, anda mesti melakukan kerja tambahan untuk membaca dan mengodekod parameter, yang mungkin bukan sukar, tetapi mungkin anda tidak mahu menghadapi masalah ini.
  • Jika keselamatan adalah masalah, kami menyarankan untuk memilih kaedah POST. Kaedah GET akan meletakkan parameter borang secara langsung di dalam URL aplikasi, jadi peneliti jaringan boleh menangkap mereka dengan mudah dan mengambilnya dari log pelayan. Jika parameter mengandungi maklumat sensitif seperti nombor kad kredit, ini akan mengancam keselamatan pengguna secara tak sadar. Manakala aplikasi POST tidak mempunyai kelemahan keselamatan, sekurang-kurangnya boleh menggunakan kaedah pengenkripsi untuk menghantarkan parameter secara berasingan ke pelayan untuk diproses.
  • Jika anda mahu panggil aplikasi pihak berlayar di luar borang dan termasuk proses untuk memberikan parameter kepadanya, anda harus menggunakan kaedah GET, kerana kaedah ini membenarkan pengenalan parameter seperti borang ini di sebahagian daripada URL. Sementara itu, aplikasi yang digunakan gaya POST hanya mahu ada proses penghantaran tambahan daripada pelayar yang datang di belakang URL, di mana kandungan penghantaran ini tidak boleh dijadikan kandungan tag <a> tradisional.

Pemindahan parameter yang jelas

Sejumlah cadangan sebelum ini juga boleh digunakan sebagai penjelasan untuk pilihan cara ini. Dengan asumsi anda mempunyai borang yang sangat sederhana, yang hanya mengandungi parameter x dan y. Dalam mengkodekan nilai elemen ini, bentuknya seperti berikut:

x=28&y=66

Jika borang menggunakan method=GET, URL yang digunakan untuk merujuk aplikasi pihak berlayar seperti berikut:

http://www.example.com/example/program?x=28&y=66

Pada setiap masa, kami boleh cipta tag <a> tradisional, untuk memanggil borang yang mempunyai nilai parameter yang diperlukan, bentuknya seperti berikut:

<a href="http://www.example.com/example/program?x=28&y=66">

Masalah tunggalnya adalah simbol & yang digunakan untuk memisahkan parameter juga adalah simbol entiti. Jika simbol & di masukkan ke dalam atribut href <a> tag, pelayar akan menggantikan karakter berikutnya dengan entiti karakter yang sesuai.

Untuk mengelakkan hal ini, kita mesti menggantikan simbol & dengan entiti sepadanya, iaitu "&" atau "&". Selepas penggantian, contoh penggunaan aplikasi pelayar yang bukan bentuk borang seperti yang di atas akan seperti berikut:

<a href="http://www.example.com/example/program?x=28&y=66">

Walaupun begitu, simbol & masih boleh digunakan dalam URL, dan mungkin akan membawa kebingungan di masa mendatang. Kita menggesa pelayar untuk tetap menerima tanda koma sebagai pemisah parameter. Juga, anda boleh lihat dokumen pelayar anda untuk mengetahui sama ada pelayar anda menyokong fungsi ini.

Dukungan pelayar

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
Dukungan Dukungan Dukungan Dukungan Dukungan