cookie和sessionstorage的区别 cookie是易失数据吗?

[更新]
·
·
分类:互联网
2625 阅读

cookie和sessionstorage的区别

cookie是易失数据吗?

cookie是易失数据吗?

cookie不是易失数据。
Cookie存储于用户本地磁盘上,所以数据不易丢失,里面保存着浏览器访问过的网页的一些信息(比如访问时间,地址等),也可以通过代码设置自定义的值进去,可以实现持久化sessionid,用户操作记录、用户访问控制等功能。
持久化sessionid:就是将sessionid保存到cookie中,访问时浏览器会把对应的cookie发给服务器,服务器获取cookie中的sessionid,然后从内存中获取对应的session做登录判断即可。

可以通过js获取session的值吗?

Session是一种会话保持机制,和Cookie一样,只不过Session是保存在服务器端的。而JS在客户端运行时默认是无法直接获取Session的,但我们可以通过其它方式变通的让JS能获取到Session的值。
Session机制我们知道HTTP协议本身就是无状态的协议,默认情况下即使是同一个客户端发出的多次请求,也会被当成不同客户发出的请求(因为服务器端是无法识别哪些请求是来自同一个客户端发出的)。这种特性对于WEB应用而言是存在很大问题的,因为很多业务是必须要会话机制的,所以才有了Cookie Session机制。基于Cookie Session机制,在一定时间内同一客户端发出的多次请求服务器都会标识为同一客户的请求,因为每个请求都有一个head头信息。
通过JS获取Session的方案虽然JS无法直接获取Session的值,但我们可以在动态页面中调用Session的值,然后用JS通过Ajax调用此动态页面,这样就变相的通过JS获取到了Session的值。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

首先要明白一点,session是存储于服务器端的。因此想要获取session必须是服务器端语言。如果楼主说的是指运行于网页端的js当然不能获取session。但是别忘了,还有nodejs,如果使用nodejs作为服务器端运行的语言,此时服务器端的js当然就可以获取session的。

js不能直接获取session的值,但是可以操作cookies。
session和浏览器之间通过一个叫sessionID的cookies关联起来。通过操作这个cookies,可以间接操作session。
其实你的需求就是错的,理解错了session和cookies的区别和关系