Rumah > Soal Jawab > teks badan
Apakah perbezaan antara menggunakan kaedah GET
或 POST
? Mana satu lebih selamat? Apakah kelebihan dan kekurangan masing-masing?
(Soalan serupa)
P粉8845486192023-10-15 14:16:09
Apabila pengguna memasukkan maklumat ke dalam borang dan mengklik "Serah," maklumat itu boleh dihantar daripada penyemak imbas ke pelayan dalam dua cara: dalam URL atau dalam kandungan permintaan HTTP.
Kaedah GET yang digunakan dalam contoh sebelumnya menambahkan pasangan nama/nilai pada URL. Malangnya, panjang URL adalah terhad, jadi kaedah ini hanya berfungsi dengan sangat sedikit parameter. Jika borang menggunakan sejumlah besar parameter, atau jika parameter mengandungi sejumlah besar data, URL mungkin dipotong. Selain itu, parameter yang dihantar pada URL boleh dilihat dalam medan alamat penyemak imbas, yang bukan tempat terbaik untuk memaparkan kata laluan.
Alternatif kepada kaedah GET ialah kaedah POST. Kaedah ini membungkus pasangan nama/nilai dalam kandungan permintaan HTTP, yang menjadikan URL lebih bersih dan tidak meletakkan had saiz pada output borang. Ia juga lebih selamat.
P粉0020233262023-10-15 12:54:06
Ini bukan isu keselamatan. Protokol HTTP mentakrifkan permintaan jenis GET sebagai idempoten, manakala POST mungkin mempunyai kesan sampingan. Dalam bahasa Inggeris biasa, ini bermakna GET digunakan untuk melihat sesuatu tanpa mengubahnya, dan POST digunakan untuk mengubah sesuatu. Sebagai contoh, halaman carian harus menggunakan GET, manakala borang untuk menukar kata laluan anda harus menggunakan POST.
Selain itu, sila ambil perhatian bahawa PHP mengelirukan sedikit konsep ini. Permintaan POST mengambil input daripada rentetan pertanyaan dan badan permintaan. Permintaan GET hanya mendapatkan input daripada rentetan pertanyaan. Jadi permintaan POST ialah superset permintaan GET; anda boleh menggunakan $_GET
,甚至可以在 $_POST
和 $_GET
dalam permintaan POST dengan parameter nama yang sama yang bermaksud perkara yang berbeza.
Sebagai contoh, katakan anda mempunyai borang untuk mengedit artikel. ID artikel mungkin dalam rentetan pertanyaan (dan oleh itu diluluskan $_GET['id']
获得),但假设您想要更改文章 ID。然后,新的 ID 可能会出现在请求正文中 ($_POST['id']
). Okay, mungkin ini bukan contoh terbaik, tetapi saya harap ia menggambarkan perbezaannya.