Cookie 、Session、localstorage、Sessionstorage的区别

98 阅读2分钟

Cookie和Session是服务器端保存状态的机制

Cookie

  • 是存储在客户端的一种用于识别用户身份和记录用户历史操作的信息,具有跨域名和跨浏览器的特点
  • 存储容量很小,只有4KB左右
  • 服务器将信息存储在客户端的Cookie中,通过HTTP协议传输到客户端,再在客户端被存储到浏览器的Cookie中
  • 数据可以被其他人轻易地拦截和读取,因此Cookie保存的敏感数据应该加密或者不保存。

Session

  • Session是服务器端保存用户信息的一种机制,可以控制用户的登录状态、记录用户的操作信息等
  • 存储容量可以更大一些,因为它保存在服务器端,但是也不能无限增加
  • 服务器端直接存储,并在客户端保存一个SessionID。客户端在每次请求时将SessionID发送给服务器端,服务器根据SessionID来获取并操作相应的Session数据。
  • 是保存在服务器端的,不容易被非法获取

localstorage和Sessionstorage客户端保存数据的机制;都是html5中新增的本地存储机制,可以将数据存储在用户的浏览器中,不需要每次请求都传输数据到服务器;存储数据大小一般都是:5MB

localstorage

  • 是永久性的,只能通过代码来删除或者修改
  • 在所有同源窗口中都是共享的,相同浏览器的不同页面间可以共享相同的 localStorage在所有同源窗口中都是共享的,相同浏览器的不同页面间可以共享相同的 localStorage

Sessionstorage

  • 只在会话期间有效,一旦关闭浏览器窗口或者标签页,数据就会被清除。
  • 在不同的浏览器窗口中不共享,不同页面或标签页间无法共享sessionStorage的信息