1.GET(获取)
- ① 数据放在 url 里面传输:
- 浏览器发送请求时{
- 携带的请求参数不超过 4K;
- 必须在浏览器地址栏将参数展示出来;
- 必须将参数信息保存在 HTTP 请求协议包中(请求头); }
② 浏览器在接收到服务器返回的资源文件后,资源文件保存于浏览器缓存;
POST(发送数据)
- ① 浏览器发送请求时{
- 可携带任意请求参数数量;
- 必须在浏览器地址栏隐藏参数信息;
- 参数信息保存在 HTTP 请求协议中(请求体); }
② 禁止对返回的资源文件内容保存(阅后即销);
如何接收浏览器的 GET 数据
①
const queryString = require('querystring'); let server = http.createServer((req, res) => { //有请求 就回调 //request 请求, response 响应 let [url,query]=req.url.split('?'); let get = queryString.parse(query); console.log(url,get); });
②
const url = require("url"); let server = http.createServer((req, res) => { //有请求 就回调 //request 请求, response 响应 let { pathname, query } = url.parse(req.url, true); console.log(pathname, query); });
如何接收浏览器的 POST 数据
post 数据会分段接收(由于 post 数据大)
①
const querystring = require('querystring') let server = http.createServer((req, res) => { let arr = {}; req.on("data", (buffer) => { console.log(buffer); //返回 二进制数据 }); req.on("end", () => { let buffer = Buffer.concat(arr); //将buffer放入数组中 let post = querystring.parse(buffer.toString()); console.log(post); }); });