基于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对象里面查找对象的用户信息。
网友评论