• Cookie的使用(二)


    Cookie的保存和读取

    在JavaScript的文档对象模型(DOM)中,Cookie对象是从属于文档对象(window.document)
    的子对象。其表现行为类似于一个字符串对象。如前面所说,Cookie保存的是文本信息,因此JavaScript中常将字符串或数值型变量的内容保存于其中。
    将信息保存在Cookie中的语法很简单,即直接将字符串赋值给该对象:
    window.document.cookie = “需要保存的信息”
    window.document.cookie = ”关键字=值”
    获取Cookie对象中保存的信息也很简单,可以直接将该对象作为字符串处理。例如:
    alert(document.cookie);

    字符串的编码

    在字符串的实际使用中,常常会遇到对其编码的限制。比如Cookie中不允许需要保存的字符串中有分号“;”出现。有些操作系统,在解释中文的字符串时常常出现乱码的现象。这些都需要程序员想办法避免储存数据中出现非英文字母、非数字的字符。
    JavaScript提供了内置的编码和解码函数,用来将非英文的字符编码或解码。编码函数为“escape”,使用的语法为:
    codedString = escape(originalString);
    其作用为,将参数字符串“originalString”中的特殊字符(绝大多数的非英文字母、非数字的字符)替换为“%”加上该字符unicode编码的两位十六进制字符,或“%u”加上该字符unicode编码的四位十六进制字符(视该字符的编码而定)。
    函数“unescape”与“escape”相反,用于将“escape”编码后的字符串解码还原为原始的字符串。其语法为:
    originalString = unescape(codedString);

     
    Cookie的有效期、域和路径

    Cookie作为网站保存在客户端电脑上的小段文本信息,不可能永远的存在下去,其有着一定的生存周期。当过期后,浏览器会自动的删除该Cookie。Cookie还有着域和路径的属性,用来标识不同的Cookie。浏览器在访问网页的时候,会自动根据网页的URL决定所需发送的Cookie。这些Cookie的属性不可以直接访问,只能在设置某一Cookie的时候设置。

    Cookie的有效期和清除
     
    Cookie的有效期在不设置的情况下,当用户关闭浏览器时即被删除。设置有效期后,浏览器会自动识别Cookie的状态是否过期。JavaScript中,设置Cookie的有效期很简单,只需要在设置Cookie的时候,在需保存的值后用分号“;”隔开,加上形如“expires=过期日期字符串”的字段就可以了。这也是为什么在Cookie所保存的信息字符中不可以有分号“;”的原因:系统需要保留该字符来分隔信息主体和附加的有效期等内容。“过期日期字符串”可以为多种形式,都可以被浏览器自动的理解。例如下面的语法都是可以的:
    document.cookie = “姓名=妞妞; expires = Mon, 31 Dec 2007 17:41:11 UTC”;
    document.cookie = “姓名=成头; expires = 2008年1月1日 1:42:12”;
    document.cookie = “姓名=青青; expires = 2008/1/1 1:42:12”;

     
    Cookie的域和路径及Cookie欺骗
     
    Cookie有着域的属性,浏览器和服务器通信时,仅将所访问主机对应的域的Cookie发送给该主机。服务器在通知浏览器设置Cookie的时候,浏览器自动的将该Cookie保存在该服务器的域名下,从而避免出现Cookie泄漏、将某一网站的Cookie发送给另一个网站的错误。譬如,当用户打开“http://mail.163.com”和“http://www.google.cn”的时候,“document.cookie”具有着不同的内容,如图所示。

  • 相关阅读:
    一篇文章搞懂密码学基础及SSL/TLS协议
    如何编写一个多进程性能测试程序
    自动化测试用例编写日志总结(一)
    Python lambda匿名函数
    Python map() 函数
    python中sorted函数的理解(对list列表排序,对dict字典排序)
    python list列表冒泡排序
    range的用法
    同时安装python2和python3是使用pip的方法:
    cmd输出文件树结构
  • 原文地址:https://www.cnblogs.com/paper/p/1535739.html
Copyright © 2020-2023  润新知