Rumah  >  Artikel  >  hujung hadapan web  >  Perbezaan antara dua kaedah penghantaran data method=post/get in the Form form_HTML/Xhtml_Web page production

Perbezaan antara dua kaedah penghantaran data method=post/get in the Form form_HTML/Xhtml_Web page production

WBOY
WBOYasal
2016-05-16 16:40:312216semak imbas

Borang menyediakan dua kaedah penghantaran data - dapatkan dan pos. Walaupun kedua-dua cara untuk menghantar data, ia sangat berbeza dalam penghantaran sebenar dan mungkin mempunyai kesan yang serius pada data. Walaupun bekas web telah melindungi beberapa perbezaan antara kedua-duanya untuk mendapatkan nilai pembolehubah dengan mudah, memahami perbezaan antara keduanya juga akan membantu dalam pengaturcaraan masa hadapan.

Kaedah dapatkan dan siarkan dalam Borang masing-masing sepadan dengan kaedah GET dan POST dalam protokol HTTP semasa proses penghantaran data. Perbezaan utama antara keduanya adalah seperti berikut:

1 Get digunakan untuk mendapatkan data daripada pelayan, manakala Post digunakan untuk memindahkan data ke pelayan.

2. Dapatkan menambah data dalam bentuk ke URL yang ditunjukkan oleh tindakan dalam bentuk variable=value, dan kedua-duanya disambungkan menggunakan "?", dan setiap pembolehubah disambungkan menggunakan "&" ; Post meletakkan data dalam borang ke dalam badan data borang, dan menghantarnya ke URL yang ditunjukkan oleh tindakan dengan cara yang sepadan dengan pembolehubah dan nilai.

3. Get tidak selamat kerana semasa proses penghantaran, data diletakkan dalam URL yang diminta, dan banyak pelayan sedia ada, pelayan proksi atau ejen pengguna akan merekodkan URL permintaan dalam fail log , dan kemudian meletakkannya suatu tempat supaya beberapa maklumat peribadi boleh dilihat oleh pihak ketiga. Selain itu, pengguna juga boleh melihat data yang diserahkan terus pada pelayar, dan beberapa mesej sistem dalaman akan dipaparkan di hadapan pengguna. Semua operasi Pos tidak dapat dilihat oleh pengguna.

4. Jumlah data yang dihantar oleh Get adalah kecil, terutamanya kerana ia dihadkan oleh panjang URL manakala Post boleh menghantar sejumlah besar data, jadi anda hanya boleh menggunakan Post apabila memuat naik fail (sudah tentu ada sebab lain, yang akan dibincangkan kemudian) disebut).

5 Get mengehadkan nilai set data dalam borang Borang menjadi aksara ASCII manakala Post menyokong keseluruhan set aksara ISO10646.

6 Dapatkan ialah kaedah lalai Borang.

Data yang dihantar menggunakan Post boleh ditukar dengan betul ke dalam bahasa Cina dengan menetapkan pengekodan manakala data yang dihantar oleh Get tidak berubah. Kita mesti memberi perhatian kepada ini dalam prosedur akan datang.

________________________________________________________________________________________________

1 Kaedah Dapatkan menghantar data pengguna melalui permintaan URL, menyambungkan nama setiap medan dalam borang dan kandungannya sebagai sepasang rentetan, dan meletakkannya dalam program yang ditunjukkan oleh atribut tindakan Selepas memasukkan URL, seperti http://www.mdm.com/test.asp?name=asd&password=sad, data akan dipaparkan terus pada URL, sama seperti pengguna mengklik. pautan; kaedah Pos menggunakan mekanisme pos HTTP untuk menukar borang Nama setiap medan dan kandungannya diletakkan dalam pengepala HTML (header) dan dihantar ke pelayan untuk diproses oleh program yang ditunjukkan oleh atribut tindakan. Program akan membaca data borang melalui kaedah input standard (stdin) dan menambahkannya pada pelayan

2 Kaedah Dapatkan memerlukan penggunaan Request.QueryString untuk mendapatkan nilai pembolehubah kaedah menggunakan Permintaan.Borang untuk mengakses kandungan yang diserahkan

3 Jumlah data yang dihantar oleh kaedah Dapatkan adalah sangat kecil , biasanya terhad kepada kira-kira 2 KB, tetapi kecekapan pelaksanaan adalah lebih baik daripada kaedah Post; jumlah data yang dipindahkan oleh kaedah Post adalah agak besar, dan ia menunggu pelayan membaca data, tetapi terdapat juga had bait, iaitu untuk mengelakkan penggunaan pelayan Sebilangan besar data digunakan untuk melakukan serangan berniat jahat . Menurut Microsoft, Microsoft mempunyai had ke atas data maksimum yang boleh diterima menggunakan Request.Form(Ia adalah 80 KB bait dalam IIS 4 dan 100 KB bait dalam IIS 5

Cadangan: Melainkan anda berada di sini. pastikan data yang anda hantar boleh dihantar sekali gus, sila cuba gunakan kaedah Post

4. Menyerahkan data melalui kaedah Dapatkan akan membawa isu keselamatan, seperti halaman log masuk, menghantar data melalui kaedah Dapatkan , nama pengguna dan kata laluan akan muncul pada URL Jika halaman boleh dicache atau orang lain boleh mengakses mesin pelanggan, akaun pengguna dan kata laluan boleh diperolehi daripada rekod sejarah, jadi adalah disyorkan untuk menggunakan kaedah Pos untuk penyerahan borang. ; kaedah Post diserahkan Masalah biasa dengan halaman borang ialah apabila halaman dimuat semula, kotak dialog akan muncul

Cadangan: Atas sebab keselamatan, adalah disyorkan untuk menggunakan Siarkan untuk menghantar data

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn