总结:
一.首先post和get参数都是通过key=value来传递,的不过位置不同
get是把请求位置放在请求url路径里
header是把请求数据放在header里边
但是相同的一点是拼接方式是一致的:
like:
name=root&password=1234
二.接下来讲一下get和post的时候,客户端和服务端都需要做什么
1、针对get请求
因为是直接放在url里边,所以我们在客户端和服务端都可以借助url核心库
(1)客户端请求
想得到:“name=root&password=1234”这样的形态,最简单的方法字符串拼就可以了
(2)服务端
服务端就需要借助url的parse方法了
//url.parse的第一个参数是请求路径,第二个参数是是否解析字符串,我们最后要的是query部分的数据
var params = url.parse(request.url, true).query;
//输出:{name:root, password:1234}
2.针对post请求
因为参数是封装在header里边,所以我们在客户端和服务器端都要做一些操作
(1)客户端
var qs = require('querystring');
console.log(qs.stringify({name:"root”,password:1234}));
//输出name=root&password=1234
(2)服务端
var qs = require('querystring');
console.log(qs.parse('name=root&password=1234'));
//输出{name:"root”,password:1234}
PS:三方框架
有时候针对node的一些三方框架,可能就不需要这么复杂了
它们在内部重新封装了一些方法,借用了qs,我们不需要重复的做一些操作
like:express4.x
客户端暂且不管
服务端得到get参数是rq.query.key
服务端得到post参数是rq.body.key