Rumah > Artikel > hujung hadapan web > Apakah perbezaan antara node.js get dan post?
Perbezaan: 1. Parameter permintaan GET dihantar melalui URL, manakala parameter permintaan POST dihantar melalui mesej pautan atas HTTP 2. Permintaan POST lebih selamat daripada permintaan GET, dan parameter permintaan GET boleh dilihat dalam URL. , jadi permintaan GET tidak selamat 3. GET mempunyai cache permintaan, tetapi POST tidak digunakan untuk mendapatkan data, manakala POST digunakan untuk menghantar data; terhad, tetapi jumlah data yang dihantar oleh POST Tiada sekatan 6. Permintaan GET mempunyai sekatan pada jenis data, manakala permintaan POST tidak mempunyai sekatan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 16, komputer DELL G3.
Node ialah bahasa JavaScript yang dijalankan di bahagian pelayan. Pengguna perlu menggunakan kaedah get/post untuk menghantar permintaan ke pelayan.
Fungsi yang dilaksanakan oleh get dan post pada asasnya adalah sama Kedua-dua pelanggan menghantar data ke pelayan, tetapi mekanisme pelaksanaannya berbeza.
GET permintaan
Permintaan GET menambah baris gilir data parameter pada url yang ditunjukkan oleh atribut tindakan borang dan nilai adalah sama seperti dalam bentuk Atribut nama sepadan dengan satu dan boleh dilihat dalam URL. Req.url yang dihantar diproses melalui parse() dalam modul url.
Kami menghantar permintaan dapatkan melalui borang:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>get</title> </head> <body> <form action="http://localhost:8080/index" method="get"> 用户:<label> <input type="text" name="user" value=""> </label><br> 密码:<label> <input type="password" name="pass" value=""> </label><br> <input type="submit" value="提交"> </form> </body> </html>
Kod node.js yang sepadan adalah seperti berikut:
const http=require('http'); const urlLib=require('url'); http.createServer(function (req, res){ //req获取前台请求数据 //req.url的值是:/index?user=Kity&pass=32412 var obj=urlLib.parse(req.url, true); var url=obj.pathname;//url的值是:"/index" var GET=obj.query; //GET的值是:{user:'Kity',pass:'232312'} console.log(url, GET); res.write('success'); res.end(); }).listen(8080);
Hasil selepas menjalankan nod. kod js adalah seperti berikut:
liyabin@liyabin-ThinkPad-Edge-E430:~/下载/node$ node server3.js /index { user: 'Kity', pass: '231312' }
Permintaan POST
Semua kandungan permintaan POST berada dalam badan permintaan, dan semua node.js tidak akan menghuraikannya secara lalai badan permintaan. Permintaan siaran diproses melalui parse() dalam modul rentetan pertanyaan. Jumlah data yang dihantar melalui pos adalah jauh lebih besar daripada mendapatkan. Ia tidak akan dihantar sekaligus dan perlu tiba dalam segmen.
Untuk menghantar borang permintaan pos, cuma tukar method="get" di atas kepada method="post".
const http=require('http'); const querystring=require('querystring'); http.createServer(function (req, res){ //POST——req var str = ''; //接收数据 //data——有一段数据到达(很多次) req.on('data', function (data){ let i = 0; console.log(`第${i++}次收到数据`); str += data; }); //end——数据全部到达(一次) req.on('end', function (){ let POST = querystring.parse(str); console.log(POST); res.write("success"); res.end(); }); }).listen(8080);
Hasil selepas menjalankan kod nod adalah seperti berikut:
liyabin@liyabin-ThinkPad-Edge-E430:~/下载/node$ node server.js 第0次收到数据 { user: 'fdf', pass: '21341412' }
Perbezaan antara dapatkan dan pos
Kelebihan dan kekurangan permintaan GET dan POST:
(1) Jumlah data yang dihantar melalui get adalah sangat kecil, umumnya sekitar 2k, tetapi kecekapan pelaksanaan Lebih baik daripada pos; (2) Jumlah data yang dihantar melalui pos adalah lebih besar untuk pelayan membaca data, tetapi terdapat juga had bait. Ini adalah untuk mengelakkan serangan pada pelayan dengan jumlah data yang besar Microsoft mempunyai had kepada data maksimum yang diterima oleh Request.Form(), iaitu 80kB untuk IIS4 dan 100kB untuk IIS5; ) Pos biasanya digunakan untuk menghantar borang borang, kerana jika anda menggunakan get untuk menghantar data, nama pengguna dan kata laluan akan muncul dalam url Sebaliknya, jika halaman boleh dicache atau pengguna lain boleh mengakses klien, nama pengguna dan kata laluan boleh dilihat daripada rekod sejarah, yang membawa isu keselamatan data.
Untuk lebih banyak pengetahuan berkaitan nod, sila lawati:
tutorial nodejs!
Atas ialah kandungan terperinci Apakah perbezaan antara node.js get dan post?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!