随着Web应用程序的出现,也产生了对于能够在客户端上存储用户信息能力的要求。这个问题的第一个解决方案是以cookie形似出现的。网景公司在一份名为“Persistent Client State: HTTP Cookies”的标准中对cookie机制进行了阐述。
cookie限制:
  1. 每个域的cookie个数是有限的,ie7之后是每个域30个,firefox是50个,chrome和safari没有限制
  2. 当超过单个域名cookie限制后,还要设置cookie,浏览器就会清除前的cookie;ie和opera会删除最近最少使用过的cookie;firefox的删除并没有规律
  3. 单个cookie的容量也有限制,每个至多4kb,超过4kb这个cookie会无声消失掉。

cookie的构成:

  • 名称:一个唯一确定cookie的名称。cookie的名称必须是经过url编码的
  • 值:存储在cookie中字符串值。值必须被url编码
  • 域:cookie对于哪个域是有效的。所有向该域发送的请求都会包含这个cookie信息。这个值可以包含子域:www.wrox.com也可以不包含子域:.wrox.com
  • 路径:指定对于域中的那个路径,应该向服务器发送cookie。
  • 失效时间:表示cookie何时应该被删除的时间戳。默认情况下,浏览器回话结束时即将所有cookie删除;如果设置过期时间,cookie可在浏览器关闭后依然保存在用户的机器上。
  • 安全标志:指定后,cookie只有在使用SSL连接的时候才能发送到服务器。

尤其注意:域、路径、失效时间和secure标志都是服务器给浏览器的指示,以指定何时应该发送cookie。这些参数并不会作为发送到服务器的cookie信息的一部分,只有名值对才会被发送。

 
document.cookie浏览器提供的用来访问和设置cookie。这个属性的特殊之处在于因为使用它的方式不同而表现出不同的行为:
  • 当用来获取属性时,document.cookie返回当前页面可用的(根据域、路径、失效时间和安全设置)所有cookie的字符串,一系列由分号隔开的键值对:"nam1=value1;name2=value2;name3=value3"注意最后没有分号
  • 当用于设置值的时候,document.cookie属性可以设置为一个新的cookie字符串。这个cookie字符串会被解释并添加到现有的cookie集合中。除非cookie名已经存在,否则设置document.cookie并不会覆盖cookie。:document.cookie=encodeURIComponent(name) + "=" + encodeURIComponent(value) + "; domain=.wrox.com; path=/";
WebStorage
webStorage的目的是克服由cookie带来的一些限制,当数据需要被严格控制在客户端上时,无需持续地将数据发回服务器。Web Storage的两个主要目的:
  • 提供一种在cookie之外存储会话数据的途径;
  • 提供一种存储大量可以跨会话存在的数据的机制;

Storage类型

Storage类型提供最大的存储空间来存储键值对儿。Storage的实例主要常用以下方法:
  • getItem(name):根据指定的名字name获取对应的值
  • removeItem(name):删除由name指定的键值对儿
  • setItem(name):位指定的name设置一个对应值

还可以使用length属性来判断有多少键值对存放在Storage对象中。

 
localStorage对象
要访问同一个localStorage对象,页面必须来自同一个域(子域名无效),使用同一协议,在同一窗口上。
存储在localStorage中的数据保留到通过JavaScript删除或者是用户清除浏览器缓存。
storage事件
对storage对象进行任何修改,都会在文档上触发storage事件。
document.addEventListener('storage', function(evt){});
 
大多数桌面浏览器对localStorage的限制都是5MB,chrome和safari对其限制是2.5mb。

Web 数据存储总结的更多相关文章

  1. 浅析Web数据存储-Cookie、UserData、SessionStorage、WebSqlDatabase

    Cookie 它是标准的客户端浏览器状态保存方式,可能在浏览器诞生不久就有Cookie了,为什么需要Cookie 这个东东?由于HTTP协议没有状态,所以需要一个标志/存储来记录客户浏览器当前的状态, ...

  2. web数据存储

    数据的存储必然是任何网站必须经历的事,我们可以将数据存放在不同地方,数据库.文件.内存.程序本身.cookie,session中都可以,但是只要需要持久化保留的数据,那么最终肯定还是落在磁盘之上的,我 ...

  3. web sql database数据存储位置

    Q1: 数据存储在哪儿? Web Storage / Web SQL Database / Indexed Database 的数据都存储在浏览器对应的用户配置文件目录(user profile di ...

  4. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  5. cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中(转)

    基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中. 以博客园为例,我们看看cookie有哪些属性: 1.Name:cookie的名称: 2.V ...

  6. 数据存储之Web存储(sessionStorage localStorage globalStorage )

    Web Storage 两个目标 提供一种在cookie之外的存储会话守数据的途径 提供一种存储大量可以跨会话存在的数据机制 最初的Web Storage规范包含两个对象 sessionStorage ...

  7. Web前端数据存储

    Cookie 会跟随每次请求附加到请求header上,大小限制4k. 部署对象: document.cookie 构成: Key-Value 有效期:根据expires配置 可选项: ;path=pa ...

  8. 数据存储的两种方式:Cookie 和Web Storage

    数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...

  9. 数据存储的两种方式:Cookie 和Web Storage(转)

    数据存储的两种方式:Cookie 和Web Storage   数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡 ...

随机推荐

  1. Unix权限管理

    // */ // ]]> Unix权限管理 Table of Contents 1 Unix权限管理 2 进程权限 3 文件权限 4 进程对文件的存取访问的权限校验过程 1 Unix权限管理 权 ...

  2. PoEdu - C++阶段班【Po学校】- Lesson03-4_构造函数&赋值函数&拷贝构造函数&学习方式 - 第6天

    PoEdu - C++阶段班[Po学校]- 第6天 课堂选择题目: 1  关于转换构造函数  ClassDemo demo = 1;  调用转换构造函数 2  关于拷贝赋值函数  demo =2; 首 ...

  3. 使用nginx为ArcGIS Server做反向代理

    1.下载nginx软件:官网地址http://nginx.org/ 2.修改conf文件夹下nginx.conf配置信息, 配置文件中以下内容: server { listen       80; s ...

  4. Enterprise app deployment on iOS 7.1 by github

    在iOS7.1以上版本通过Url分发企业应用时,需要采用SSL方式分发plist.如果采用http方式,就会报“无法安装应用程序,因为"example.com"的证书无效.”正确的 ...

  5. PhpStorm破解教程

    http://www.cnblogs.com/buyucoder/p/5291771.html

  6. 启动maven项目发现没有tomcat

    手动配置tomcat插件 1.在项目打开之前,选择configure--->plugins 2.搜索"tomcat",勾选,ok 3.再选择configure--->s ...

  7. 如何用70行Java代码实现深度神经网络算法(转)

    对于现在流行的深度学习,保持学习精神是必要的——程序员尤其是架构师永远都要对核心技术和关键算法保持关注和敏感,必要时要动手写一写掌握下来,先不用关心什么时候用到——用不用是政治问题,会不会写是技术问题 ...

  8. jboss [how to access the admin console]

    However you have not yet added any users to be able to access the admin console. 进入%EAP_HOME%/bin 执行 ...

  9. 【解题报告】BZOJ2550: [Ctsc2004]公式编辑器

    题意:给定一个可视化计算器的操作序列,包括插入数字.字母.运算符.分数.矩阵以及移动光标.矩阵插入行.插入列,输出操作序列结束后的屏显(数学输出). 解法:这题既可以用来提升OI/ACM写大代码模拟题 ...

  10. Winodow Server Backup学习向导-window 2008

    1.安装Window Server Backup 2.备份服务器 3.恢复服务器 4.优化和备份服务器性能 Windows Server Backup 中的新增功能有哪些? Windows Serve ...