koa-session源码解读

2020 年 9 月 16 日

koa-session源码解读

1 基础概念

1.1 Cookie

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行 Session 跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。

在浏览器首次访问服务器的时候,服务器将通过 Set-Cookie 给浏览器种个 cookie(标识),客户端发送 HTTP 请求时,会自动把 Cookie 附加到 HTTP 的 Header 中发送到服务器端,过程如下:

交互流程如下:

1.2 session

session 的定义

在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

session 与 cookie 交互过程

koa-session 分为内存、外部存储,如果设置 CONGIG={store:new store()},为外部存储,否则为内存存储,对于外部存储服务器端生成唯一的标识 externalKey,在服务器端开辟 externalKey 的数据存储空间,externalKey 作为全局唯一标识符通过 cookie 发送给客户端,客户端再次访问服务器时会把 externalKey 通过请求头中的 cookie 发送给服务器,服务器将通过 externalKey 把此标识符在服务器端的 session 数据取出。交互过程如下图所示:

原文链接:【 https://www.infoq.cn/article/sAqbq2MgGGldcBLi9DU4 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 9 月 16 日 10:06 328

评论

发布
暂无评论
发现更多内容

架构师训练营第一周命题作业

whiter

极客大学架构师训练营

直播 | 阿里、快手、Databricks、网易云音乐...国内外大数据大佬齐聚一堂要聊啥?

Apache Flink

大数据 flink 流计算 实时计算

阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)

周老师

Java 程序员 阿里 架构师 核心知识点

架构设计文档的一些心得

elfkingw

for 语句

拾贝

架构师训练营-第一章 心得总结

Linkin

如何从 0 到 1 参与 Flink 社区?

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

架构师训练营第一周学习总结

时来运转

极客大学架构师训练营

【练习】食堂就餐卡系统设计

张金峰

极客大学架构师训练营

数仓系列 | Flink 窗口的应用与实现

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

作业二

姜 某某

sed命令基础

飞翔

Linux 命令行

redis线程模型

wjchenge

TypeScript:重新发明一次 JavaScript

LeanCloud

JavaScript node.js typescript 前端

作业一

姜 某某

01.食堂就餐卡系统简要设计以及学习总结

昵称

架构师是怎样炼成的

彭阿三

架构

第一周学习感想

heeeeeeyZ25

01周-就餐卡系统设计

dao

极客大学架构师训练营 实验品

架构师 week 1 作业二

iLeGeND

架构师训练营第一周总结

好名字

总结 极客大学架构师训练营

极客时间架构课Week01-作业一:食堂就餐卡系统设计

yulyulcl

【架构】— 写在前面的话

不二架构

总结 感悟 极客大学架构师训练营

软件设计方法论

carol

学习笔记 思维导图 软件设计 设计实践

第一周作业1-食堂就餐系统设计

Geek_10

食堂就餐卡系统设计

heeeeeeyZ25

第一周作业二:架构师第一周上课总结

Geek_10

食堂就餐卡系统设计 UML

Kun

极客大学架构师训练营

Flink 1.10 Container 环境实战

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

食堂就餐卡系统架构设计

时来运转

极客大学架构师训练营

驳《阿里「Java开发手册」中的1个bug》?

王磊

Java 性能优化 性能

koa-session源码解读-InfoQ