这是一篇关于Cookie和Session还有LocalStorage和SessionStorage的总结的博客。
demo展示在:https://github.com/o0Chivas0o/demo/tree/master/node-demo/sign-up-demo 功能做的不是很完善,但是能帮助理解Cookie以及Session。

Cookie 有几个特点,

  1. 服务端通过Set-Cookie来设置Cookie,Cookie的本质就是一串字符串。
  2. 客户端得到这个字符串后,每次登陆这个网页,都会携带上这串字符串。
  3. 服务端再通过这串字符串去找到对应的隐私信息。
  4. Cookie大小一般为4kb。
  5. Cookie默认有失效时间,但是后台可以设置过期时间。

因为Cookie可以篡改,而且是明文传输的,所以存在漏洞,Session就解决了这个问题。

Session

Session的特点,

  1. 一般来说,Session是基于Cookie来设置的一个哈希表。
  2. 将SessionId(随机数)通过Cookie发给服务端。
  3. 客户端访问服务器时,服务器读取SessionID。
  4. 服务器有一块内存(哈希表),存储了所有的Session。
  5. 通过SessionID,我们可以得到用户的隐私信息。
  6. 这块内存(哈希表)就是服务器上所有的Session。

LocalStorage

LocalStorage的实质也是一个hash,它是html5标准提供的一个API,用来持久化存储一些不是那么重要的信息。

它的特点,

  1. LocalStorage与HTTP无关。
  2. HTTP不会带上LocalStorage。
  3. 只有相同的页面才能互相读取LocalStorage。
  4. 浏览器对每个域名分配的LocalStorage最大的存储量为5Mb左右。
  5. 记录一些无关紧要的信息,不记录用户敏感信息。
  6. LocalStorage永久有效,除非用户清理缓存。

它与Cookie的区别就是,一个通过Set-Cookie设置,一个是HTML5提供的APi,
一个是通过HTTP设置,一个与HTTP无关。

SessionStorage(会话窗口)

SessionStorageSession无关,同样,它也是浏览器提供的一个API。

它与LocalStorage一样,只有一点不一样,就是它的存储时间在用户关闭页面之后就会失效。

cache-control(缓存管理)

可以通过在服务器设置Cache-Control来设置缓存时间,从而提高网页加载速度,提供更好的用户体验。

__END__

o0Chivas0o
文章作者:o0Chivas0o
文章出处Cookie、Session、LocalStorage
作者签名:Rich ? DoSomethingLike() : DoSomethingNeed()
版权声明:文章除特别声明外,均采用 BY-NC-SA 许可协议,转载请注明出处