美文网首页分布式
基于(不基于)Cookie的Session

基于(不基于)Cookie的Session

作者: 印第安老斑鸠_333 | 来源:发表于2019-03-31 09:07 被阅读78次

基于Cookie的Session

它是什么?

这里的Session指的是一个对象,它存储在服务器的内存中。

它有什么用?

cookie是不安全的,因为它包含了一些敏感信息,这些信息都是能被看到的。这是很多人都不希望发生的事情。

通过Session可以做到给cookie提升安全性。

它的实现原理?

①,后端代码生成一个session对象,键全部用随机数的形式表示,可以称之sessionID

②,比如一个用户在登录页面输入了账密登录,服务器收到请求并验证成功,服务器应该发出一个包含cookie的响应头还标记该用户(目的是识别该用户,在cookie失效前重复访问该网站都无需再次登录)。

③,可以把用户信息当做属性值放到session对象里面,与之对应的键就是sessionID,这就无需发送用户信息了,用sessionID代替,这时的cookie就是sessionID。

④,用户的多次访问都会带上这个sessionID,服务端收到请求后,查看sessionID是否是session的成员,如果是,就能找到与之对应的用户信息。就能确认用户了。

总结:将Cookie信息以随机数的形式加密

与Cookie的区别?

①,Session作为对象存储在服务端,Cookie作为小段文本信息存储在客户端。

②,Session可以基于Cookie实现,作为Cookie来进行请求响应。

不基于Cookie的Session

Session亦可不基于Cookie实现

如何实现?

①,还以登录为例,用户输入账密发送请求到服务器,服务器验证账密成功

②,用SessionID记录下当前的用户信息

③,SessionID不当做Cookie头响应给浏览器,而是以JSON的形式(响应体)传给浏览器

④,浏览器得到响应成功并拿到SessionID存到localstorage里面备用,跳转页面时把SessionID当做查询参数传给服务器。

⑤,服务器拿到查询参数里面的SessionID,并去Session对象里面查找对象的用户信息。

相关文章

网友评论

    本文标题:基于(不基于)Cookie的Session

    本文链接:https://www.haomeiwen.com/subject/hcqybqtx.html