get方式 代码如下(get详情看注释)
/*
前端传参
get传参:拼接在url上面
http://127.0.0.1 :4399/ joke ?id-8&username=admin
post传参:不是拼接在url上面
请求体中传递
*/
//写一个服务器(后端接口)
//1.导入模块
const http = require("http");
var url = require('url');
const { utimes } = require("fs");
//2.创建服务器
const server = http.createServer((req, res) => {
var urls = req.url;
console.log(req.url); //req是请求的对象,req. ur1能拿到请求的url中?以及?后面的内容
// ' /?id-&username=weige' ' /?id=8&username=%E6
//我们可以通过req.url拿到前端传递过来的参数
//但是要做字符串的处理.
//第一个参数为要处理的数据,第二个参数,true启用对象的形式返回
//这个返回的对象里面有一个query属性,他也是一个对象,这个属性里面就有get传递过来的参数
var urlobj = url.parse(req.url, true)
console.log(urlobj);
//那就可以在这里根据这个接收到的id,去数据库中获取这个id的英雄的所有详细信息
//返回给调用这.
//如果在这里拿到了id对应的英雄的详细信息了, 就可以返回,
res.end(JSON.stringify(url0bj.query));//只能返回字符串
})
//4.开启服务器
server.listen(4399, () => {
console.log('服务器开启了...');
});
Post方式 代码如下(注释写的详细)
/**
前端传参
get传参:拼接在url上面
http://127.0.0.1:4399/ joke?id-8&username-admin
post传参:不是拼接在url上面
请求体中传递
*/
//1.导入模块
const http = require("http");
var url = require('url');
var querystring = require('querystring');//这个模块是请求丶数据转换为字符串形式
const server = http.createServer((req, res) => {
//req是请求对象
//因为这里是post的方式传递过来的参数,不是在ur1中的,所以用req.url是拿不到的
//console. log(req.ur1);
// 他也是一小块- -小块的接收.
// 1.首先你得要一个容器
let postData='';
// 2.给req对象一个data事件(这个事件 会执行很多次)
//事件处理程序,参数是当前这次传递过来的一下快内容,
req.on('data',(chunk,)=>{//意思为绑定一个data事件,这个为事件体
// 将数据累加到容器里,// 这个事件里面就把这些小块的数据拼接起来
postData+=chunk;
})
// 当前面的参数接受完成那就是end事件
// 3.给req对象一个end事件(这个事件只会执行一 -次)
req.on('end',()=>{
console.log(postData)//username=admin&&psssword=1234
//4利用解析这个传递过来的参数数据,形成一个对象
let postObj=querystring.parse(postData)
console.log(postObj);//{username:'admin',password:'"1234"}
})
// 表示数据传递完了
// 4.处理传递过来的数据
// queryString.parse0:
})
//2.创建服务器
//3.开启服务器
server.listen(4399, () => {
console.log('服务器开启了...');
});
HTTP协议-数据传输方式get post put push opt ions
get和post传输方式的区别
get是地址栏传输数据
post是表单传输数据
get传输数据量小post 传输数据量大
get不安全post是相对安全
都不准确
没有经过加密
get传输文本数据post还可以传输二进制数据
浏览器这个工具仅仅是HTTP 协议的一个具体实现