超级易懂Cookie和Session
超级易懂Cookie和Session 【超级易懂Cookie和Session】举个简单的例子:当我们登录淘宝要买东西的时候,我们第一次访问淘宝网页是需要登录自己的账号和密码的,然后我们就可以在浏览器尽情的浏览数据了,并可以把自己喜欢的商品加入自己的购物车,那问题来了:为什么不需要再次登录呢?可能大家会怼我了,因为登录过了啊。
是的,我们第一次是登录过了,但是假如没有cookie和session这两种存数据的机制(对象),我们没打开一个网页其实都是需要重新登录的。
解析
:我们使用浏览器(相当一个客户端)第一次登录后,会把我们的信息保存在服务器内存中的session(session存储在服务器),session它能存储任何数据类型包括自定义对象。每个客户端的Session是独立存储的。Session对象用于存储有关用户的信息,用户不能访问和修改其他用户的session。
在服务器端有一个session池,用来存储每个用户的session中的数据,为了区别,给每个存储单元加一个sessionId, 这个sessionId的值是唯一的, 然后把这个sessionId返回给浏览器(以cookie的形式返回)
,用户下次访问时带着这个sessionId, 从session池中找到对应的session存储单元,每个用户都有属于自己的session,不能对其他用户的session进行操作。
注
:sessionID是以cookie的形式返回给浏览器端。浏览器将接收到的存储sessionID的cookie保存在内存中(浏览器端),当关闭浏览器和重启浏览器,cookie失效。
可能大家又会问:
当关闭浏览器和重启浏览器,cookie失效,那为什么有时候关闭了浏览器,我还是可以直接不需要登录的进行访问呢?
回答
:Cookie分为内存Cookie(也可以说是进程中Cookie)和硬盘Cookie。大部分的session机制都使用进程中Cookie来保存sessionId,关闭浏览器后这个进程自动消失了,因此Cookie和Cookie中的sessionId也消失了,再次连接到服务器时无法找到原来的session。所以,在这种情况下,就是需要再次输入密码登录的。但是保存在硬盘中的cookie却不会丢失sessionId,所以即使关闭浏览器再打开,也是仍能连得上上一次的session,从而可以自动登录。
又比如说,我们可以在登录时选择“记住我”,这时用到的就是硬盘Cookie,此时,sessionId将长期保存在硬盘上的Cookie中,直到session失效为止。
推荐阅读
- HTTP高级(Cookie,Session|HTTP高级(Cookie,Session ,LocalStorage )
- 超级行动力第二次作业-行动大于学习的秘密
- 炒股知识(超级短线操作的秘籍|炒股知识:超级短线操作的秘籍 玩转股市)
- DAY|DAY 27: 《超级IP(互联网新物种方法论》――新网红(上))
- 超级适合九月去旅游的9个地方!你去过几个()
- 《超级学霸》
- 164日进一点(超级符号就是超级创意)
- 小程序|【视频倒放神器】超级玩法(千万不要倒放视频,太魔性了根本停不下来......)
- 学着解梦是一件超级有趣的事情
- 宇宙诞生的第一个瞬间与超级原子相似