cookie的存储格式及属性
在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。在cookie的名中做到这点很容易,但要保存
的值是不确定的
用encodeURI()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储
到cookie的值中,而且使用此种方案还可以避免中文乱码的出现。在获取cookie时可以通过decodeURI()方法对cookie进行
解码,然后获取其值
Cookie的保存格式为(每个属性之间通过:'分号+空格'(;)隔开;):
document.cookie="name=value; expires=evalue; path=pvalue;domain=dvalue; secure=svalue;"
Cookie参数值的意思:
name:表示要存入对象的名称,唯一必须设置的参数(通常使用: user@domain格式命名,user为本地用户,domain
为所访问网站的域名)。
value:表示要存入得值。
expires:该对象的有效时间(可选)(默认为当前浏览器会话有用,关闭浏览器就消失) ;
path:指定该Cookie作用范围(可选)(即:在那些网页上有效,默认情况下对于当前网页所在的同一目录下的所有页面有效);
domain:设置web服务器的Cookie共享域(可选)(如: test*.com)表示域名为test*.com的服务器共享该Cookie
secure:设置Cookie的传输过程是否加密(可选)(一般为SSH加密)
cookie的限制:
Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie,IE6为20个。
Firefox每个域名cookie限制为50个。
Opera每个域名cookie限制为30个。
Safari/WebKit貌似没有cookie限制。但是如果cookie很多,则会使header大小超过服务器的处理的限制,会导致
错误发生。
注意:每个cookie文件大小不要超过4KB

用户登录流程图,红色字部分为前端工作内容,其他为后端
cookie是存储在浏览器缓存里的一个对象。通过document.cookie设置。可以长期存储也可以临时存储使用场景:
免登录,记录登录状态,记录常用网址等等
本地存储的功能和作用:
传统浏览器作用:
传统浏览器只是“界面呈现工具”: html向服务器发送请求,并读取服务器响应的html文档,负责呈现html文档
如果浏览器处于离线状态,浏览器无法向服务器发送请求
现在浏览器(h5)
离线应用:控制浏览器缓存哪些页面,离线状态也可以看到页面
Web Storage:在离线状态下,可以存储用户想服务器提交信息,当再一次连接服务器时自动提交
Storage接口
Web Storage分为两种
Session Storage:基于Session的WebStorage。它保存的数据生存期限与用户Session期限相同,用户session
结束时,session Storage保存的数据也丢失
目前大多数浏览器支持,只有火狐不支持
Web Storage分为两种
Local Storage:保存在用户磁盘是的Web Storage
Local Storage保存的生存期很长,除非用户或程序显示地清除这些数据
storage提供了一下属性和方法:
length:返回storage里保存了多少组key-value对
key ( index):返回storage中第ipdex个key
getItem (key):返回storage中指定key对应的value值
setItem (key,value):想storage中存入指定的key-value值
removeItem (key):删除key对应的key-value值
clear ():删除storage中所有key-value值对
例如: storage.html、留言板.htm1、留言板json. html
cookie与sessionStorage和localStorage区别:
cookie出现时间早,存在兼容性问题
sessionStorage和localStorage都是h5之后出现的。
sessionStorage为临时存储,localStorage长期存储并且只能长期删除