cookie与session;sessionStorage、globalStorage与localStorage

版权声明:内容多为自言自语,请自行判断有无价值。 https://blog.csdn.net/weixin_41702247/article/details/83653818

一. cookie与session

 存在的原因

  1. http是无状态的协议,客户端每次发送请求都会重新验证身份
  2. 为了在一次会话中便于验证客户端身份,服务端采取了cookie机制
  3. 实现方法是服务器返回Set-Cookie的HTTP头信息并由客户端保存,之后客户端每次发送请求都会带上cookie作为自己的身份证明

相同点:都可以用来跟踪会话,实现客户端的身份整明

不同点

  1. cookie存储在客户端,session存储在服务端
  2. cookie在客户端有数量(20-50/域)和长度(4kb)限制,session受限于硬件
  3. cookie存储在客户端可被篡改有安全问题,session存储在服务端无法被客户端修改
  4. cookie的生命周期可控,session的生命周期

关联:

  1. session运行依赖于session id,这个id会被客户端存储在cookie中
  2. 如果客户端禁用cookie,则session也一样会失效,解决办法是URL重写(url地址后加上如sid=xxxx这样的参数证明身份)

参考:

https://www.zhihu.com/question/19786827

https://www.jianshu.com/p/f5ce60f12e9f

二、sessionStorage、globalStorage与localStorage 

Web Storage的作用:

  1.  提供一种在cookie之外存储会话数据的途径
  2. 存储大量 可以跨会话的数据(大小因浏览器而不同,2-10Mb)
  3. Storage一种类型,也是object,有特定的方法

sessionStorage:

存储特定于某个会话的数据,直到浏览器关闭,有同步写入和异步写入的区别

globalStorage:

存储跨会话数据,应对其指定可访问的域名,不清除则一直存在

localStorage:

在html5中取代了globalStorage,区别在于localStorage无法指定访问规则,只能由同一个域名访问存储对象

三、IndexDB

定义:在浏览器中保存结构化数据的一种数据库

原因:开发者需要在本地进行永久存储

特点:使用对象保存数据,而非表

猜你喜欢

转载自blog.csdn.net/weixin_41702247/article/details/83653818
今日推荐