cookie的出现是为了解决http协议的无状态问题,cookie是存储在浏览器中的。用户登录后,将登录信息写入cookie,浏览器每次访问携带,来证明登录的合法性。
cookie要携带登录用户的信息,这样造成了不安全性,session就是为了解决这个问题。session将用户信息存储在服务器,将生成的唯一id存入cookie,也就是sessionId。这样cookie每次只携带sessionId就可以了,提高了安全性,而且降低了携带大量参数造成的网络开销。session存储在服务端,负面影响就是占用了服务器内存,对服务器造成压力。现在常用的手段是将session放入redis集群中。
session跨域问题?
此问题常存在于单点登录中,A系统生成的cookie,浏览器在访问B系统的时候不会携带。单点登录的时候,需要专门的登录服务器,访问任何系统,都有重定向到该登录服务器,登录服务器可以将A系统的cookie,写入到访问B域名。这样在访问B系统的时候,就会携带cookie。
cookie劫持问题?
虽然用到session,cookie中只需要一个sessionId字符串,但是如果有人非法获取了这个字符串,仍然可以伪装成合法用户。这个时候可以用到token,token是服务器将一些私人信息通过加密算法生成的加密字符串,token也存储在cookie中,浏览器访问系统需要携带token,服务器收到后再进行解密,查看信息是否合法。
session,cookie,token的一点理解
最新推荐文章于 2024-04-23 10:39:01 发布