技术基础3. cookie

####铺垫:

  1. 引入http模块,建立一个服务。
  2. 引入url模块,解析浏览器请求路径。
  3. 引入queryString模块,解析查询字符串(在这里用来解析cookie);
  4. 解析cookie也可以用qs,qs是第三方模块(可以解析多层数据:{name:‘yan’,city:{xxx : ‘xxx’}})
http.createServer((req,res)=>{
       let {pathname} = url.parse(req.url,true);
}).listen(3000)

###在响应头中设置cookie:

res.setHeader('setCookie','name=yan');

####cookie 为固定格式:key=value; path=’/’

  1. 属性之间用分号空格隔开。
  2. setCookie / Set-Cookie( 二取一);

###从请求头中获取cookie:

let cookie = req.headers.cookie;

用querystring将cookie解析成对象,用querystring解析cookie字符串的时候;注意cookie的分隔符(是分号空格而不是&)。

let cookieObj=querystring(cookie,'; ');

###属性

  1. key=value:保存要传输的信息。
  2. Domain:域名。指定域名(向指定域名发请求时带cookie,有指定域名后,向其他域名发请求不带cookie),默认为当前域名。
  3. maxAge:相对过期时间。
  4. Exrires:绝对过期时间。
  5. secure:值为true时,http请求中是无效的,在HTTps中才有效。
  6. path:表示cookie影响到的路径。当浏览器匹配不到路径时,不发送cookie。
  7. httpOnly:设置了httpOnly属性,通过js不能获取cookie的信息。

###express中设置cookie

  • res.cookie(name,value,{options}):express提供的方法。
  • 安装、引入cookie-parser中间件。

$ npm install cookie-parser --save
app.use(require(‘cookie-parser’)()); //使用中间件
request.cookies

###cookie使用注意事项

  • 可能被客户端篡改,使用前验证合法性
  • 不要存储敏感数据,比如用户密码,账户余额
  • 使用httpOnly保证安全
  • 尽量减少cookie的体积
  • 设置正确的domain和path,减少数据传输
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值