cookie,session,sessionStorage和localstorage

1. 操作方式

1.1 Cookie的操作

//设置cookie
document.cookie = "<cookie-name>=<cookie-value>;(可选参数1);(可选参数2)"
可选参数:Expires=<date>:cookie的最长有效时间,若不设置则cookie生命期与会话期相同
    Max-Age=<non-zero-digit>:cookie生成后失效的秒数
    Domain=<domain-value>:指定cookie可以送达的主机域名,若一级域名设置了则二级域名也能获取。
    Path=<path-value>:指定一个URL,例如指定path=/docs,则”/docs”、”/docs/Web/“、”/docs/Web/Http”均满足匹配条件
    Secure:必须在请求使用SSLHTTPS协议的时候cookie才回被发送到服务器
    HttpOnly:客户端无法更改Cookie,客户端设置cookie时不能使用这个参数,一般是服务器端使用

document.cookie = "key=value;expire=" + date;


//获取所有cookie
document.cookie;

//删除cookie
暂时没有方法直接删除,但是可以将cookie的Max-age设置为0

//一般我们可以通过js-cookie这个库来操作cookie
Cookies.set(key, val, {expire:""等属性})		//创建cookie
Cookies.get(key)				//获取cookie的key对应的属性值
Cookies.remove(key)				//移除cookie

1.2 sessionStorage和localStorage的操作

sessionStorage和localStorage的操作一样

sessionStorage.setItem(key,val)  //创建会话存储数据
sessionSotrage.getItem(key)		 //获取指定键名数据
sessionStorage.removeItem(key)	 //删除指定键名数据
sessionStorage.clear();			 //移除所有数据

localStorage.setItem(key,val)    //创建本地存储数据
localStorage.getItem(key)		 //获取指定键名数据
localStorage.removeItem(key)	 //删除指定键名数据
localStorage.clear();			 //移除所有数据

2.存储的不同之处

(1) 生命周期
cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效
sessionStorage:仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。
localStorage:除非手动删除,否则永久保存

(2)存放数据大小:
cookie:4KB左右
localStorage和sessionStorage:可以保存5MB的信息。

(3)存储位置
cookie:cookie是由服务器端产生,保存在客户端,每次请求都会将其放在请求头中。
localStorage和sessionStorage:这两个都是本地存储,仅在客户端保存,不参与服务器通信。

3. 应用场景

由于每次http请求都会携带cookie信息,这样无形中浪费了带宽。另外cookie还需要指定作用域,不可以跨域调用。一般cookie用来保存登录信息。

localStorage可以用来夸页面传递参数,sessionStorage用来保存一些临时的数据,防止用户刷新页面之后丢失了一些参数。

4.注意

(1)HTML5本地存储只能存字符串,任何格式存储的时候都会被自动转为字符串,所以读取的时候,需要自己进行类型的转换。
(2)要注意在前端操作的存储和后端数据库存储一样都是异步的,即取的时候有可能会出现还没存好的可能。

5. session

session是保存在服务端的

cookie中保存了sessionid。第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在Cookie里面记录一个SessionID,以后每次请求把这个会话ID发送到服务器。

在浏览器关闭后这次的Session就消失了,下次打开就不再拥有这个Session。其实并不是Session消失了,而是Session ID变了,服务器端可能还是存着你上次的Session ID及其Session 信息,只是他们是无主状态,也许一段时间后会被删除。

session与cookie的区别
(1)Session是在服务端保存的一个数据结构用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中,Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

(2)Session的运行依赖Session ID,而Session ID是存在 Cookie 中的。也就是说,如果浏览器禁用了Cookie,Session也会失效(但是可以通过其它方式实现,比如在url中传递Session ID,即sid=xxxx)。

(3)cookie本身的话并不安全,考虑安全性的话,应当使用session。但是如果访问量大的话,会影响服务器性能,此时可以将一些不重要的信息存储在cookie中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值