0

0

node.js get与post的区别是什么

青灯夜游

青灯夜游

发布时间:2022-07-18 17:47:46

|

7031人浏览过

|

来源于php中文网

原创

区别:1、GET请求传参通过URL,而POST请求传参通过HTTP上行报文;2、POST请求的安全性比GET请求高,GET请求的参数在URL中,是可见的,因此GET请求不安全;3、GET有请求缓存,而POST没有;4、GET用于取出数据,而POST用于提交数据;5、GET传输的数据量有限制,而POST传输的数据量没有限制;6、GET请求对数据类型有限制,而POST请求没有限制。

node.js get与post的区别是什么

本教程操作环境:windows7系统、nodejs16版,DELL G3电脑。

node是运行在服务端的javaScript语言,用户向服务器发送请求就要用到get/post方法。

get和post实现的功能基本相同,都是客户端提交数据给服务器端,只是实现的机制不同而已。

GET请求

GET请求是把参数数据队列添加到表单的action属性所指向的url中,值和表单里的name属性一一对应,在url中可以看到。通过url模块中的parse()来处理发过来的req.url。

我们通过form表单来发送get请求:



  
    
    get
  
  
    
用户:
密码:

对应的node.js代码如下:

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);

运行node.js代码后结果如下:

liyabin@liyabin-ThinkPad-Edge-E430:~/下载/node$ node server3.js
/index { user: 'Kity', pass: '231312' }

POST请求

POST请求的内容全部的都在请求体中,所有node.js 默认是不会解析请求体的。通过querystring模块中的parse()来处理post请求。post传输的数据量比get大得多,不会一次传输完毕,需分段到达。

汉仪书宋一字体
汉仪书宋一字体

汉仪书宋一简是汉仪字库里面宋体的一种,与宋体字没什么区别,通常用于特殊提醒如批注中。

下载

发送post请求的表单只需把上面的method="get"改成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);

运行node代码后的结果如下:

liyabin@liyabin-ThinkPad-Edge-E430:~/下载/node$ node server.js
第0次收到数据
{ user: 'fdf', pass: '21341412' }

get 和 post 的区别

1.png

GET和POST请求的优缺点:

(1) get传输的数据量非常小,一般在2k左右,但是执行效率比post好;

(2)post传输的数据量较大,它是等待服务器来读数据,不过也有字节限制,这是为了防止对服务器用大量数据进行攻击,微软对用Request.Form()接收的最大数据有限制,IIS4为80kB,IIS5为100kB;

(3)form表单提交一般用post,因为如果用get提交数据,用户名和密码会出现在url上,如果页面可以被缓存或者其他用户可以访问客户端,就可以从历史记录里看到用户名和密码,带来数据的安全性问题。

更多node相关知识,请访问:nodejs 教程

相关文章

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

557

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

395

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

756

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

478

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

474

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1051

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

659

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

554

2023.09.20

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 0.9万人学习

php初学者入门课程
php初学者入门课程

共10课时 | 0.6万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号