ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

cookie的原理及使用

2022-08-07 11:31:13  阅读:126  来源: 互联网

标签:浏览器 -- res app 会话 cookie 使用 原理



关于cookie:
1.是什么?
本质就是一个【字符串】,里面包含着浏览器和服务器沟通的信息(交互时产生的信息)。
存储的形式以:【key-value】的形式存储。
浏览器会自动携带该网站的cookie,只要是该网站下的cookie,全部携带。
2.分类:
--会话cookie(关闭浏览器后,会话cookie会自动消失,会话cookie存储在浏览器运行的那块【内存】上)。
--持久化cookie:(看过期时间,一旦到了过期时间,自动销毁,存储在用户的硬盘上,备注:如果没有到过期时间,同时用户清理了浏览器的缓存,持久化cookie也会消失)。

3.工作原理:
--当浏览器第一次请求服务器的时候,服务器可能返回一个或多个cookie给浏览器
--浏览器判断cookie种类
--会话cookie:存储在浏览器运行的那块内存上
--持久化cookie:存储在用户的硬盘上
--以后请求该网站的时候,自动携带上该网站的所有cookie(无法进行干预)
--服务器拿到之前自己“种”下cookie,分析里面的内容,校验cookie的合法性,根据cookie里保存的内容,进行具体的业务逻辑。

4.应用:
解决http无状态的问题(例子:7天免登录,一般来说不会单独使用cookie,一般配合后台的session存储使用)

5.不同的语言、不同的后端架构cookie的具体语法是不一样的,但是cookie原理和工作过程是不变的。
备注:cookie不一定只由服务器生成,前端同样可以生成cookie,但是前端生成的cookie几乎没有意义。

6.对比浏览器的本地存储:
1.localStorage:
(1).保存的数据,只要用户不清除,一直存在
(2).作为一个中转人,实现跨页签通信。
(3).保存数据的大小:5MB - 10MB
2.sessionStorage:
(1).保存的数据,关闭浏览器就消失
(3).保存数据的大小:5MB - 10MB
3.cookie:
(1).分类:会话cookie----关浏览器消失、持久化cookie----到过期时间消失
(2).保存数据的大小:4K --- 8K
(3).主要用于解决http无状态(一般配合后端的session会话存储使用)
(4).浏览器请求服务器时,会自动携带该网站的所有cookie


  使用:
    1.会话cookie:关闭浏览器时就会删除。
    2.持久化cookie:设置时间时间一过就会删除。

    

    会话cookie:

    
app.get('/demo1',function (req,res){
    //express中给客户短“种”cookie不需要任何的库
    let obj ={school:'atguigu',subject:'qianduan'}
    res.cookie('peiqi',JSON.stringify(obj))
    res.send('我是路由器demo给你带来的反馈,我给你种下了一个【会话cookie】,你赶紧去浏览器里看看!')

})

    

 

    持久cookie:

    

app.get('/demo3',function (req,res) {
    res.cookie('zhangsan','lisi',{maxAge:3000*30})
    res.send('我是路由给客户端的反馈')
})
  完整代码:
let express = require('express')

let app = express()

//demo路由不对cookie进行任何操作
app.get('/demo',function (req,res){
    res.send('我是demo路由给你的反馈  ,我没有对cookie进行任何操作')
})

//会话cookie,关闭浏览器即立刻消失
//demo1路由,负责给客户短“种”下一个会话cookie
app.get('/demo1',function (req,res){
    //express中给客户短“种”cookie不需要任何的库
    let obj ={school:'atguigu',subject:'qianduan'}
    res.cookie('peiqi',JSON.stringify(obj))
    res.send('我是路由器demo给你带来的反馈,我给你种下了一个【会话cookie】,你赶紧去浏览器里看看!')

})
//持久化cookie,设置时间,时间段过去之后就会清除
app.get('/demo3',function (req,res) {
    res.cookie('zhangsan','lisi',{maxAge:3000*30})
    res.send('我是路由给客户端的反馈')
})


app.listen(3200,function(err){
    if (err) console.log(err)
    else console.log('演示启动服务器成功')
})

 






标签:浏览器,--,res,app,会话,cookie,使用,原理
来源: https://www.cnblogs.com/0722tian/p/16558646.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有