当前位置:网站首页>一次搞明白 Session、Cookie、Token,面试问题全稿定
一次搞明白 Session、Cookie、Token,面试问题全稿定
2022-07-07 21:47:00 【小梧敲代码】
01、它们分别是什么?
session:
session的中⽂翻译是“会话”,当⽤户打开某个web应⽤时,便与web服务器产⽣⼀次session。服务器使⽤session把⽤户的信息临时保存在了服务器上,⽤户离开⽹站后session会被销毁。这种⽤户信息存储⽅式相对cookie来说更安全,可是session有⼀个缺陷:如果web服务器 做了负载均衡,那么下⼀个操作请求到了另⼀台服务器的时候session会丢失。
cookie:
cookie是保存在本地终端的数据。cookie由服务器⽣成,发送给浏览器,浏览器把cookie以kv形式保存到某个⽬录下的⽂本⽂件内,下⼀次请求同⼀⽹站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加⼊了⼀些限制确保cookie不会被恶意使⽤,同 时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。
cookie的组成有:名称(key)、值(value)、有效域(domain)、路径(域的路径,⼀般设置为全局:“”)、失效时间、安全标志(指定后,cookie只有在使⽤SSL连接时才发送到服务器(https))。
token:
token的意思是“令牌”,是⽤户⾝份的验证⽅式,最简单的token组成:uid(⽤户唯⼀的⾝份标识)、time(当前时间的时间戳)、sign(签名,由token的前⼏位+盐以哈希算法压缩成⼀定长的⼗六进制字符串,可以防⽌恶意第三⽅拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库。
02、它们之间有什么关系?
cookie,session都可以是token存储的一种方式。
cookie为存储在本地的数据,请求时会将该数据提交到服务器验证使用。
session为存储在服务器上的内存数据,只要会话没有中断,那么该数据持续有效。
toke通常上来说属于令牌,cookie,session为一种数据存储和使用方式,令牌可以存储在cookie,session,但是实际上通过url参数或者表单参数一样可以达到同样的效果。但是对于开发和维护来说成本较高,一旦后端要求修改参数,这样的使用方式对于修改来说是很头疼的事情。
03、它们本质上的区别?
session的使用方式是客户端cookie里存id,服务端session存用户数据,客户端访问服务端的时候,根据id找用户数据。
而token的使用方式是客户端里存id(也就是token)、用户信息、密文,服务端什么也不存,服务端只有一段加密代码,用来判断当前加密后的密文是否和客户端传递过来的密文一致,如果不一致,就是客户端的用户数据被篡改了,如果一致,就代表客户端的用户数据正常且正确。
流程:
session,注册登录->服务端将user存入session->将sessioni存入浏览器的cookie->再次访问时根据cookie里的sessionid找到session里的user。
token,注册登录->服务端基于用户信息与密钥生成一个token->将token+user 返回给浏览器->再次访问时传递token+user+密文数据,后台会再次使用user与密钥生成token,与传递过来的token比较,一致则正确。
session、cookie、token 这几个概念在面试中可以说是经常出现的,因为通过这个概念基本上可以了解到你对网络请求或者权限管理这一块是否有过了解和实际的应用。
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
点击文末小卡片领取 |
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
边栏推荐
- Microservice Remote debug, nocalhost + rainbond microservice Development second Bomb
- Aspose. Word operation word document (I)
- Basic knowledge of binary tree
- Aspose. Word operation word document (II)
- Details of the open source framework of microservice architecture
- Take full control! Create a "leading cockpit" for smart city construction
- Debezium series: source code reading snapshot reader
- Record layoutrebuild Forcerebuildlayoutimmediate does not take effect
- Ueeditor custom display insert code
- php 记录完整对接腾讯云直播以及im直播群聊 所遇到的坑
猜你喜欢
Apple further entered the financial sector through the 'virtual card' security function in IOS 16
Cannot find module 'xxx' or its corresponding type declaration
CTF练习
ASP. Net core introduction V
LeetCode203. Remove linked list elements
LeetCode707. Design linked list
Line test - graphic reasoning - 3 - symmetric graphic class
PCL .vtk文件与.pcd的相互转换
Redis集群安装
Digital transformation: five steps to promote enterprise progress
随机推荐
UWA Q & a collection
C # realizes the communication between Modbus protocol and PLC
Visual studio 2019 installation
The PHP source code of the new website + remove authorization / support burning goose instead of pumping
How pyGame rotates pictures
Debezium系列之:mysql墓碑事件
Record layoutrebuild Forcerebuildlayoutimmediate does not take effect
[interview arrangement] 0211 game engine server
Amesim2016 and matlab2017b joint simulation environment construction
Failed to initialize rosdep after installing ROS
Revit secondary development - modify wall thickness
Debezium系列之:引入对 LATERAL 运算符的支持
Build an "immune" barrier in the cloud to prepare your data
关于海康ipc的几个参数
Get the week start time and week end time of the current date
Qt Graphicsview图形视图使用总结附流程图开发案例雏形
微服务架构开源框架详情介绍
XMIND mind mapping software sharing
VTOL in Px4_ att_ Control source code analysis [supplement]
The free styling service of Dyson's official direct store is now open for appointment. Pioneer Technology interprets the styling concept of hair care and helps consumers unlock diversified and shiny s