【计算机网络】Session与Cookie的概念,机制和区别

以下仅是我个人根据参考资料得出的一些见解,如有错误之处感谢指出。

Session和Cookie简介

何为Session?

Session在计算机网络中称为“会话控制”。

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

web 请求通过http协议实现。 而 http 协议是 无状态, 无连接的协议,即无法在多次http请求中, 阻碍了可与用户动态交互,并根据用户不同,展现不同内容的应用程序的实现。

于是session应运而生,session通常为 服务器服务, 后端语言(例如java,php都有实现。) 为每个不同用户创建单独的session会话并分配了不同的唯一身份 SessionID ,根据该sessionID,服务器可区别用户,并读取该sessionid存储的值。

在Linux系统nginx服务器中,每个用户的session存在temp目录下。

同时应用程序可以在每一次session内存储,读取并验证用户状态和信息,例如登录状态,身份信息。

session有自己的生命周期,具有创建,过期,销毁的过程,一般不需要应用程序去管理,只需关心应用程序自己的数据是否存在即可。

简单来说,Session可以让 后端的应用程序在服务器的每个用户会话中存储数据

何为Cookie?

Cookie是用户本地浏览器存储数据的一种机制,它通常以域名作路径为标识,即,每个网址/域名都可视为一个目录/路径,Cookie存在这些目录下。

另外Cookie有一套安全机制(虽然并不十分安全),例如禁止跨域,有失效时间等。

Cookie由浏览器程序实现和管理。

简单来说,Cookie就是通过javaScript脚本,存储和读取 网站在用户本地浏览器中缓存数据

Session和Cookie区别

  • Cookie数据是存储在用户浏览器中的,而Session是存储在服务器中的。
  • Cookie以域名为路径存储,Session为每个用户单独创建会话。
  • 通常在浏览器的网络请求中,会带上Cookie字段,让服务器可以读取存储的Cookie值。服务器想要存储Cookie时,会带上Set-Cookie字段,浏览器会自动存储。而Session只能由后端应用程序存储和读取值。

等…

Session机制如何辨别用户

http无状态,无连接,为何session能够识别每个用户的请求呢?答案在于,session依靠cookie传输认证数据识别。

在一次向服务器的请求中,若请求中不存在包含sessionID的cookie,则服务器会为用户创建会话,并生成唯一的SessionID。

然后在响应中通过Set-Cookie返回该SessionID。在用户本地接收响应后,浏览器将该SessionID存储下来,并在之后的请求中的Cookie带上该SessionID。

服务器响应请求时发现了SessionID,会恢复该会话,并载入存储的会话变量。以便必要时应用程序可以读取自己存储的值。

关于微信小程序的cookie

微信小程序中并未自动管理cookie,需要自己根据服务器数据来保存并在请求时带上sessionID,才能在服务器中进行会话识别。
参考【微信小程序】后端无法保持session的原因及解决办法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值