session和cookie深度解析
1 为什么需要session和cookie?
web系统的发展经历了三个阶段:
web1.0:强调资源共享
web2.0:强调交互。
人与终端的交互,服务器需要知道人当前操作处于哪个阶段,此时设计上就需要实现状态记录。
通过http协议就引入了session和cookie来实现状态的记录。
web3.0:强调双赢。
类似现代的自媒体,就是双赢的一种状态。
2 session和cookie的特征:
session和cookie都是由服务器生成的。
session和cookie都是键值对应的,即都是用来存储状态值的。
session和cookie是存储在服务器的,cookie是会返回给客户端的,有客户端保存。
一般来说,sessionID(服务器用来读取session对象的标识)会以类似于cookie的形式返回给客户端。sessionID本身是不携带数据的,都是返回给服务器后由服务器解读出数据。
存储session的方式有很对,可以是图片,也可以是文件
3 session和cookie生命周期:(存活周期就是,同一个id,如果在规定范围内没有访问或使用,则该id就会失效)
浏览器在发送请求时,会自动将客户端存活的cookie封装在请求头中发送。
cookie的生命周期和两个因素有关:
第一个:cookie本身的存活周期:是由服务器生成的cookie时所指定的。
第二个:客户端是否保存了cookie。客户端是否保存cookie只对当前客户端自身受影响,不会对其它客户端有影响。
session的生命周期也是和两个因素有关:
第一个:服务器对于session对象的存活周期的设置。
第二个:客户端进程是否关闭;要注意的是,客户端进程关闭,并不能说明session不能使用。
4 session和cookie都是有作用域的。
指目录,指域名。(这里就不做解释了)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现