区别技术点优化安全

Cookie、Session和LocalStorage

2018-02-21  本文已影响0人  YangJeremy

Storage就是指我们的存储:


Storage.png

Coolie对应的里面有Name,Value,Domain,Path和Expires。
Domain表示Cookie在哪个域下是生效的。Expires表示生效时间,过了这个时间会自动失效。简而言之,cookie就是在当前域名下存储的一点点数据,数据量很小,不能超过4k。

假如我们清空本页面的cookie,然后刷新页面,会看到重新产生cookie,那么这些cookie是谁设上去的呢?答案是响应头里面的set-cookie,浏览器看到set-cookie这个字段之后,就把cookie种到当前的页面下:


响应头-setcookie.jpg

之后,浏览器发的请求都会带上这个cookie:


带上cookie.jpg

那么,cookie的作用是什么呢?

设置cookie时的参数:
path:表示 cookie 影响到的路径,匹配该路径才发送这个 cookie。expires 和 maxAge:告诉浏览器 cookie 时候过期,maxAge 是 cookie 多久后过期的相对时间。不设置这两个选项时会产生 session cookie,session cookie 是 transient 的,当用户关闭浏览器时,就被清除。一般用来保存 session 的 session_id。
secure:当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效

localStorage localStorage.jpg

localStorage比较简单,对应的只有key和value,它的存储量会大很多,5M甚至10M都有,他没有时间限制,即使把页面关掉,下次重新打开,他仍然存在。

使用JS可以操控localStorage:


操控.jpg 获得.jpg

如果要将某个对象存入localStorage里去,那么先通过JSON.Stringify()方法将对象转化成JSON字符串再存进去,例如:


JSONStringify.jpg
  1. localStorage HTML5本地存储web storage特性的API之一,用于将大量数据(最大5M)保存在浏览器中,保存后数据永远存在不会失效过期,除非用 js手动清除。
  2. 不参与网络传输。
  3. 一般用于性能优化,可以保存图片、js、css、html 模板、大量数据。

Session

cookie 是存储在浏览器里的一小段「数据」,而session是一种让服务器能识别某个用户的「机制」,session 在实现的过程中需要使用cookie。 二者不是同一维度的东西。

上一篇 下一篇

猜你喜欢

热点阅读