首页 > 技术文章 > node post和get请求原理

xianxianxxx 2018-01-04 15:40 原文

重要:GET和POST请求他们都是上行请求,都是把数据从浏览器带向服务器的方式,


GET 请求实际上就是识别URL中的querystring部分
POST请求,一般用来发送大量的内容,此时node非常害怕大内容,因为如果你上传的时候传1G的内容,此时你会把进程阻塞,这时node很聪明,它会把浏览器传来的大内容分成一个个包来进行传输

 


GET请求:

var http = require("http");
var url = require("url");
var querystring = require("querystring");

var server = http.createServer((req,res)=>{
    var query1 = url.parse(req.url).query; //产生结果是字符串,加上true,就是json  var query1 = url.parse(req.url,true).query;
    var obj = querystring.parse(query1);   //第二种方式,效率不高。没有第一种方便
    console.log(obj);
});

server.listen(3800,"192.168.3.55");

POST请求:

  HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单</title>
</head>
<body>
    <form action="http://127.0.0.1:3800" method="post">
        <p>
            <input type="text" name="name" placeholder="请输入用户名" />
        </p>
        <p>
            <input type="text" name="age" placeholder="请输入年龄" />
        </p>
        <p>
            <input type="radio" name="sex" value="" /><input type="radio" name="sex" value="" /></p>
        <p>
            <input type="submit" value="提交" />
        </p>
    </form>
</body>
</html>

  js:

var http = require("http");
var url = require("url");

var server = http.createServer((req,res)=>{
    var result = "";
    //面对post提交,node.js用监听的写法处理
    req.on("data",function (chunk) {
        //data 是一个事件,表示一个小包传输完毕做的事情,
        console.log("小包传输完毕");
        result += chunk;
    });
    req.on("end",function () {
        //所有的包都传输完毕
        console.log(result.toString());
    })
});

server.listen(3800,"127.0.0.1");

 

推荐阅读