前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web前端学习 第8章 egg基础教程6 cookie与session

Web前端学习 第8章 egg基础教程6 cookie与session

原创
作者头像
学习猿地
修改2020-06-24 14:40:39
5070
修改2020-06-24 14:40:39
举报
文章被收录于专栏:学习猿地学习猿地

一、cookie的基本概念

  • cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据,实现数据的持久化。
  • HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。
  • cookie可以设置多个。

二、cookie在项目中的应用

通过cookie记录访问次数

let count = ctx.cookies.get('count');

设置 Cookie 其实是通过在 HTTP 响应中设置 set-cookie 头完成的,每一个 set-cookie 都会让浏览器在 Cookie 中存一个键值对。在设置 Cookie 值的同时,协议还支持许多参数来配置这个 Cookie 的传输、存储和权限。

案例解析

  1. 可以看到home与router都是最初始的源代码
  2. 然后启动服务器,打开浏览器,按F12找到Network,然后找到Cookie,可以发现Name中只有Request与Response。
  3. 开始使用Cookie
  4. 实现功能,每次访问一次他就会记录一次

三、session的基本概念

  • session 是另一种记录客户状态的机制,session基于cookie, 不同的是 Cookie 保存在客户端浏览器中,而session 保存在服 务器上,相对于cookie,session更安全。
  • Session 的工作流程 当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生成一个类似于 key,value 的键值对, 然后将 key(cookie)返回到浏览器(客户)端,浏览器下次再访问时,携带 key(cookie),找到对应的 session(value)。
代码语言:javascript
复制
 1      //设置
 2         this.ctx.session.userinfo={
 3             name:'张三', 
 4             age:'20'
 5         };
 6 
 7     //获取
 8         var userinfo=this.ctx.session;
 9 
10     //Session 的默认设置
11         exports.session = {
12             key: 'EGG_SESS',
13             maxAge: 24 * 3600 * 1000, // 1 day httpOnly: true,
14             encrypt: true
15         };
16 
17     //Session 在 config.default.js 中的配置
18         config.session={
19             key:'SESSION_ID',
20             maxAge:864000,
21             renew: true //延长会话有效期
22         };

cookie 和session 区别
  • cookie 数据存放在客户的浏览器上,session 数据放在服务器上。
  • cookie 相比 session 没有 session 安全,别人可以分析存放在本地的 * Cookie 并进行 COOKIE欺骗。
  • session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用 COOKIE。
  • 单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 * 20 个 cookie。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、cookie的基本概念
  • 二、cookie在项目中的应用
    • 通过cookie记录访问次数
    • 三、session的基本概念
    • cookie 和session 区别
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档