• cookie的使用


    cookie的使用

    1.创建cookie对象:

    function addCookie(name, value) {
    var path = filterRoot();
    var cookieString = name + "=" + escape(value) + ";domain=" + path+";path=/shanpai/";
    document.cookie = cookieString;
    }
    // 取得cookie值
    function getCookie(name) {
    var strCookie = document.cookie;
    var arrCookie = strCookie.split("; ");
    for (var i = 0; i < arrCookie.length; i++) {
    var arr = arrCookie[i].split("=");
    if (arr[0] == name)
    return arr[1];
    }
    return "";
    }
    // 删除cookie
    function deleteCookie(name) {
    var path = filterRoot();
    var date = new Date();
    date.setTime(date.getTime() - 10000);
    document.cookie = name + "=v; domain=" + path+";path=/shanpai/";
    }


    2.cookie的生命周期:

          如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

          如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

          

    3.HTTP规范.:httponly表示只读,javascript无法读取和修改HttpOnly cookies。

          若是网站基于cookie而非服务器端的验证,最好加上HttpOnly,目前这个属性还不属于任何一个标准,也不是所有的浏览器支持,支持HttpOnly cookies的

    浏览器(IE6以上,FF3.0以上);
    4.secure:

          表示创建的 cookie 只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以绝对不会被窃听到

    也就是说:setSecure(true); 的情况下,只有https才传递到服务器端。http是不会传递的。

          在http连接下, 当setSecure(true)时,浏览器端的cookie不会传递到服务器端,而服务器端的cookie会传递到浏览器端。

          原理:服务器端的Cookie对象是java中的对象,请不要和浏览器端的cookie文件混淆了。服务器端的Cookie对象是方便java程序员包装 一个浏览器端的cookie文件。一但包装好,就放到response对象中,在转换成http头文件。在传递到浏览器端。这时就会在浏览器的临时文件中 创建一个cookie文件。
          但我们再次访问网页时,才查看浏览器端的cookie文件中的secure值,如果是true,但是http连接。这个cookie就不会传到服务器端。当然这个过程对浏览器是透明的。其他人是不会知道的。

    5.cookie.setDomain(域名或者 "."开头的二级域名); 该方法设置后只有同域名下可以访问,当设置为"."开头的时候,同域名和二级域名可以访问。
    6.cookie.setPath(路径); 该方法设置后只有同级路径和子路径可以访问。路径从域名下开始计算。备注:FireFox和IE下默认没有设置path,chrome则默认设置path为当前写入路径。
    7.因浏览器不同,path默认值存在差异,要解决兼容性问题,要明确指定Domain和Path。

    Cookie使用中的问题:

    (1)cookie可能被禁用:当用户非常注重个人隐私保护时,他很可能禁用浏览器的cookie功能; 
    (2)cookie是与浏览器相关的:这意味着即使访问的是同一个页面,不同浏览器之间所保存的cookie也是不能互相访问的; 
    (3)cookie可能被删除:因为每个cookie都是硬盘上的一个文件,因此很有可能被用户删除; 
    (4)cookie安全性不够高:所有的cookie都是以纯文本的形式记录于文件中,因此如果要保存用户名密码等信息时,最好事先经过加密处理。

  • 相关阅读:
    数据库产生的背景
    VS2008执行MFC程序,提示microsoft incremental linker已停止工作解决方法
    leetcode第一刷_Add Binary
    【MongoDB】深入了解MongoDB不可不知的十点
    哈理工2015暑假训练赛 zoj 2078Phone Cell
    dpdk l2fwd 应用流程分析
    在Redhat Linux中执行非Redhat的Openstack, Redhat将对其Linux不提供支持
    Wing IDE 怎样设置 python版本号
    Shell编程入门
    通达OA 小飞鱼OA实施法:以项目管理的方式来推进工作流设计项目实施
  • 原文地址:https://www.cnblogs.com/sunrise/p/4283184.html
Copyright © 2020-2023  润新知