cookie、本地存储的功能和作用、Storag

643 阅读3分钟
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,IE620个。
    Firefox每个域名cookie限制为50个。
    Opera每个域名cookie限制为30个。
    Safari/WebKit貌似没有cookie限制。但是如果cookie很多,则会使header大小超过服务器的处理的限制,会导致
错误发生。
    注意:每个cookie文件大小不要超过4KB

cookie.png

用户登录流程图,红色字部分为前端工作内容,其他为后端

    cookie是存储在浏览器缓存里的一个对象。通过document.cookie设置。可以长期存储也可以临时存储使用场景:
免登录,记录登录状态,记录常用网址等等

本地存储的功能和作用:
    传统浏览器作用:
        传统浏览器只是“界面呈现工具”: html向服务器发送请求,并读取服务器响应的html文档,负责呈现html文档
        如果浏览器处于离线状态,浏览器无法向服务器发送请求
    现在浏览器(h5)
        离线应用:控制浏览器缓存哪些页面,离线状态也可以看到页面
        Web Storage:在离线状态下,可以存储用户想服务器提交信息,当再一次连接服务器时自动提交

Storage接口
    Web Storage分为两种
        Session Storage:基于SessionWebStorage。它保存的数据生存期限与用户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长期存储并且只能长期删除