Cookie以及Session

Cookie

什么是Cookie

1.服务器通过Set-Cookie头给客户端一串字符串。
2.客户端每次访问相同域名的网页时,必须带上这段字符串。
3.客户端要在一段时间内保存这个Cookie。
4.Cookie默认在页面关闭后失效,但后台可以任意设置Cookie的过期时间。

Session

什么是Session

Session是服务器上的哈希表。
服务器通过Cookie给用户一个SessionId,SessionId对应服务器里面的一小块内存。每次用户访问服务器的时候,服务器就通过SessionId去读取对应的Session,获取到用户的隐私信息。

1.将SessionId通过Cookie发给客户端。
2.客户端访问服务器时,服务器读取SessionId。
3.服务器有一块内存(哈希表)保存了所以Session。
4.通过SessionId我们可以得到对应用户的隐私信息,如ID,email等。
5.这块内存(哈希表)就是服务器上的所有Session。

PS:SessionId通常为随机数,以保证安全。

LocalStorage是什么

LocalStorage是html5技术提供的一个API;
LocalStorage的实质是一个hash;
LocalStorage是浏览器上的哈希表;
LocalStorage能做到持久化存储。

比如:


LocalStorage.png

代码为:

let a = localStorage.getItem('a')

if(!a){
  a = 0 
} else {
  a = parseInt(a,10) + 1 
}
localStorage.setItem('a',a)
localStorage的特点

1.LocalStorage跟HTTP无关。
2.HTTP不会带上LocalStorage的值。
3.只有相同域名的页面才能互相读取LocalStorage(但并没有同源那么严格)
4.每个域名LocalStorage最大存储量为5MB左右(每个浏览器不同)
5.常用场景是记录有没有提示过用户(及一些不敏感信息)
6.LocalStorage永久有效,除非用户自己清理。

SessionStorage

作用基本同上,
但SessionStorage在用户关闭页面后就失效。

Cookie和Session的关系

一般来说,Session是基于Cookie来实现的,因为Session必须将SessionID放在Cookie里再发给客户端,Session是依赖Cookie的。

Cookie和LocalStorage的区别是什么

Cookie每次请求的时候都会带给服务器,而LocalStorage不会,另外Cookie的存储量一般在4KB左右,LocalStorage在5MB左右。

你可能感兴趣的:(Cookie以及Session)