GET和POST两种基本方法的使用和区别

2018-11-09  本文已影响0人  有所执方有所成

GET和POST是HTTP请求的两种最基本的方法,使用node.js时GET和POST也是就传输数据最基本的方法了,虽然两者都是传输数据,但是这两个东西是有挺大区别的,
比如:1.GET 数据在url中
POST 数据不在url中
2.数据大小的不同
get最大不超过32k(头文件空间32k,一般get大小不超过1k),post最大可达1G。
当然,这是因为它们的用途不同。
在浏览器中:GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据
主要的区别在于:

1.GET参数通过URL传递,POST放在Request body中。

2.GET在浏览器回退时是无害的,而POST会再次提交请求。

3.GET产生的URL地址可以被Bookmark,而POST不可以。

4.GET请求会被浏览器主动cache,而POST不会,除非手动设置。

5.GET请求只能进行url编码,而POST支持多种编码方式。

6.GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

7.GET请求在URL中传送的参数是有长度限制的,而POST么有。

8.对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

9.GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
(以上内容参考自w3schools)

QQ截图20181109.png

给大家get和post两种数据通过实现来直观的对比
get

const http=require('http');
const urlLib=require('url');

http.createServer(function (req, res){
  var obj=urlLib.parse(req.url, true);
  
  var obj=urlLib.parse("http://www.buxiangdadaima.com/index?a=12&b=5", true);//网址自己设置
  console.log(obj.pathname, obj.query);

  var url=obj.pathname;
  var GET=obj.query;

  console.log(url, GET);

  //req获取前台请求数据
  res.write('aaa');
  res.end();
}).listen(8081);

post

const http=require('http');
const querystring=require('querystring');

http.createServer(function (req, res){
  //POST——req

  var str='';   //接收数据

  //data——有一段数据到达(很多次)
  var i=0;
  req.on('data', function (data){
    console.log(`第${i++}次收到数据`);  //分片
    str+=data;
  });
  //end——数据全部到达(一次)
  req.on('end', function (){
    var POST=querystring.parse(str);
    console.log(POST);
  });
}).listen(8080);

这是post分片传输的实例


QQ截图201811.png

我用的测试页面有点简洁, 你们可以用自己以前写的好看一点的页面做测试
测试页面代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form action="http://localhost:8081/aaa" method="post">
      用户:<input type="text" name="user"><br>
      密码:<input type="password" name="pass"><br>
      <input type="submit" value="提交">
    </form>
  </body>
</html>

总的来说 get是从服务器上获取数据,post是向服务器传送数据。get数据就像快递的小件货,一次就可以拿到了,但是保密性不太好,别人可以直接看你的快递信息,也许你买的是除脚臭的东西,然后你有脚臭别人就知道啦,post数据就像要快递一个大衣柜,没有办法一次寄过去,只能拆分,到地的再组装,但是是私人发货,没有物品信息,别人不知道里面有什么。

上一篇下一篇

猜你喜欢

热点阅读