一、session与cookie的区别

二、HTML5中WebStorage理解

WebStorage的目的是克服由cookie所带来的一些限制,当数据需要被严格控制在客户端时,不需要持续的将数据发回服务器。

WebStorage两个主要目标:(1)提供一种在cookie之外存储会话数据的路径。(2)提供一种存储大量可以跨会话存在的数据的机制。

HTML5的WebStorage提供了两种API:localStorage(本地存储)和sessionStorage(会话存储)。

1、生命周期:localStorage:localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。

        sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。

2、存储大小:localStorage和sessionStorage的存储数据大小一般都是:5MB

3、存储位置:localStorage和sessionStorage都保存在客户端,不与服务器进行交互通信。

4、存储内容类型:localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

5、获取方式:localStorage:window.localStorage;;sessionStorage:window.sessionStorage;。

6、应用场景:localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据。sessionStorage:敏感账号一次性登录;

WebStorage的优点:

(1)存储空间更大:cookie为4KB,而WebStorage是5MB;

(2)节省网络流量:WebStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie一样美词请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了网络流量;

(3)对于那种只需要在用户浏览一组页面期间保存而关闭浏览器后就可以丢弃的数据,sessionStorage会非常方便;

(4)快速显示:有的数据存储在WebStorage上,再加上浏览器本身的缓存。获取数据时可以从本地获取会比从服务器端获取快得多,所以速度更快;

(5)安全性:WebStorage不会随着HTTP header发送到服务器端,所以安全性相对于cookie来说比较高一些,不会担心截获,但是仍然存在伪造问题;

(6)WebStorage提供了一些方法,数据操作比cookie方便;

    setItem (key, value) ——  保存数据,以键值对的方式储存信息。

   getItem (key) ——  获取数据,将键值传入,即可获取到对应的value值。

  removeItem (key) ——  删除单个数据,根据键值移除对应的信息。

  clear () ——  删除所有的数据

  key (index) —— 获取某个索引的key

最新文章

  1. 【小白的CFD之旅】16 流程
  2. NOI 1.5 42:画矩形
  3. 权威发布:长链非编码RNA命名规则
  4. UVa725 - Division
  5. Android之动态图片
  6. cocosbuilder学习汇总
  7. WCF开发教程资源收集
  8. 恶心的学校机房SQL安装
  9. [解答]对‘’未定义的引用 collect2: 错误: ld 返回 1
  10. 【QT相关】QT+opencv环境配置
  11. MyEclipse2015 javaweb项目从svn检出后变成java项目,clean之后不能编译,解决办法是
  12. Qt下libusb-win32的使用方法(转)
  13. 50个PHP程序性能优化的方法
  14. android studio导出apk
  15. Codeforces Round #406 (Div. 1) A. Berzerk 记忆化搜索
  16. Dockerize PostgreSQL
  17. windows配置ftp服务器
  18. maven的下载
  19. 902. Numbers At Most N Given Digit Set
  20. Python中线程与互斥锁

热门文章

  1. ASP.NET MVC从视图传参到控制器的几种形式
  2. oracle 分组函数执行分析
  3. 常见C语言内存错误
  4. 强大的Notepad++,竟然还是自由使用的
  5. 在win10 64位系统安装 lxml (Python 3.5)
  6. (转)Spring Boot 2 (六):使用 Docker 部署 Spring Boot 开源软件云收藏
  7. python nt, bool, str 试题
  8. Leetcode:0002(两数之和)
  9. Python 的几个命令行参数
  10. 区分range() , np.arange() , np.linspace()