美文网首页
GET和POST两种基本方法的使用和区别

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

作者: 有所执方有所成 | 来源:发表于2018-11-09 23:24 被阅读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数据就像要快递一个大衣柜,没有办法一次寄过去,只能拆分,到地的再组装,但是是私人发货,没有物品信息,别人不知道里面有什么。

    相关文章

      网友评论

          本文标题:GET和POST两种基本方法的使用和区别

          本文链接:https://www.haomeiwen.com/subject/voooxqtx.html