http请求概述

http请求概述

从输入url到显示页面的整个过程

  • DNS解析,建立TCP连接,发送http请求

    先解析域名,解析出来一个IP地址,客服端个服务器建立一个TCP连接,发送http请求

  • server接收到http请求,处理,并返回

  • 客户端接收到返回数据,处理数据(如渲染页面,执行js )

nodejs处理http请求

get请求和querystring

get请求,即客户端要向server端获取数据,如查询博客列表

通过querystring来传递数据,如a.html?a=100&b=200

浏览器直接访问,就发送get请求

querystring 模块

querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。

这4个方法分别是querystring.parsequerystring.stringify,querystring.escapequerystring.unescape

首先,使用querystring模块之前,需要require进来:

1 const querystring = require("querystring");

1.querystring.parse(str,separator,eq,options)

参数:obj指需要序列化的对象

separator(可省)用于连接键值对的字符或字符串,默认值为"&";

eq(可省)用于连接键和值的字符或字符串,默认值为"=";

options(可省)传入一个对象,该对象可设置encodeURIComponent这个属性:

encodeURIComponent:值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.escape()。

parse这个方法是将一个字符串反序列化为一个对象。

querystring.parse("name=whitemu&sex=man&sex=women");
/*
return:
{ name: 'whitemu', sex: [ 'man', 'women' ] }
*/
querystring.parse("name=whitemu#sex=man#sex=women","#",null,{maxKeys:2});
/*
return:
{ name: 'whitemu', sex: 'man' }
*/

2.querystring.stringify(obj,separator,eq,options)

stringify这个方法是将一个对象序列化成一个字符串,与querystring.parse相对。

querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] });
/*
return:
'name=whitemu&sex=man&sex=women'
*/
querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] },"*","$");
/*
return:
'name$whitemu*sex$man*sex$women'
*/

3.querystring.escape(str)

escape可使传入的字符串进行编码

querystring.escape("name=慕白");
/*
return:
'name%3D%E6%85%95%E7%99%BD'
*/

4 querystring.unescape(str)

unescape方法可将含有%的字符串进行解码

querystring.unescape('name%3D%E6%85%95%E7%99%BD');
/*
return:
'name=慕白'
*/

总结:

querystring.stringify序列化;

querystring.parse反序列化;

querystring.escape编码;

querystring.unescape解码;

post请求和postdata

post请求,即客户端要像服务端传递数据,如新建博客
通过post data传递数据,后面会演示

路由

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值