HTML5 Web缓存cookie,session

在介绍HTML5 web缓存前,来认识一下cookie和session:

session:

由于HTTP是无状态的,你是谁?你干了什么?抱歉服务器都是不知道的。

因此session(会话)出现了,它会在服务器上存储用户信息以便将来使用(比如用户名称,购物车购买商品等)。

但是session是临时的,用户离开网站将被删除。如果要永久存储信息,可以保存在数据库中!

session工作原理为每个用户创建一个session id(核心!!!)。而session id是存储在cookie中的,也就是说如果浏览器禁用了cookie,那么session会失效!(但是可以通过其它方式实现,如:通过URL传递session id)

用户验证一般采用session。

 

cookie:

目的:网站标记用户身份而存储在本地客户端的数据(通常经过加密)。

用户访问网页时,名字记录在cookie中;

下次继续访问该网页时,可以从cookie中读取用户访问记录。

cookie会在同源的http请求携带(即使不需要),即在客户端和服务器之间来回传递!

cookie的数据大小不超过4k

cookie的有效期:设置的cookie有效时间之前一直有效,即使浏览器关闭!

 

localStorage & sessionStorage:

早期,本地缓存普遍使用的是cookie,但是web存储需要更安全、更快速!

这些数据不会保存在服务器上(存储在客户端),不会影响服务器性能!

sessionStorage和localStorage数据存储也有大小限制,但却比cookie大得多,可以达到5M甚至更大!

localStorage:没有时间限制的数据存储!

sessionStorage:由英文意思也可知,它是对session的数据存储,所以在用户关闭浏览器(标签页/窗口)后,数据被删除!

 

HTML5 web存储支持情况:

IE8以上,现代浏览器。

数据以键值对存储:

localStorage和sessionStorage都有以下几个方法:

localStorage.setItem(key,value):设置(保存)数据;相当于localStorage.key=value!

localStorage.getItem(key):获取数据

localStorage.removeItem(key):删除单个数据

localStorage.clear():删除所有数据

localStorage.key(index):获取某个索引的键值

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>web storage</title> 9 </head> 10 11 <body> 12 <div id="test"></div> 13 <script> 14 if (typeof (Storage) != undefined) { 15 localStorage.name = 'xiao ming'; 16 localStorage.setItem('name1', 'Apple'); 17 document.getElementById('test').innerHTML = "you are: " + localStorage.name; 18 console.log("first:" + localStorage.name1 + "," + localStorage.key(0)); 19 localStorage.removeItem('name1'); 20 console.log("second: " + localStorage.name1); 21 console.log("third: " + localStorage.getItem('name')); 22 localStorage.clear(); 23 console.log("last:" + localStorage.name); 24 } else { 25 document.getElementById('test').innerHTML = "更新浏览器吧!目前浏览器不支持stroage"; 26 } 27 28 </script> 29 </body> 30 31 </html>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjzxy.html