zoukankan      html  css  js  c++  java
  • L--cookie

    介绍

      cookie是浏览器提供的一种机制,它将document对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。

    什么是cookie

      Cookie是浏览器提供给客户端的用来存储少量数据的一种机制.通过Cookie无论是客户端脚本还是服务器端脚本,都可以很方便的在一个页面引用另一个页面的数据.Cookie是浏览器提供给javascript的少数持久化对象之一.所谓持久化对象,是指他的生命周期长于浏览器Window对象的生命周期.

    客户端Cookie

      Document对象的cookie属性可以操作浏览器的cookie对象,这个对象是个单例模式,也就意味着它在浏览器实例中是唯一的,两个完全不同的窗口访问的是一个实例

      javascript是通过设置字符串的描述方式来通知浏览器创建和删除cookie的.(一直以来cookie是一个颇受争议的话题,由于涉及到安全隐患,遭到了众多网络专家的批评). 

    Cookie的属性

      浏览器的cookie对象可以看做一个key-value的关联数组.有name和value两个必填属性,还有4个可选属性,分别是生存期,可见性,安全性.

      (1)生存期(expires).默认情况下cookie存储的值只在浏览器会话期间存在,当用户关闭浏览器,这些值就被销毁,如果要让cookie存在的时间超过会话期间,可以通过expires指定一个长久的失效日期,只要在这日期之  前,cookie就是存在的.

      (2)可见路径(path).指定了和cookie关联一起的网页,只有在设置的路径下才能访问到cookie,如果想让某个服务器域的任何网页都能访问这个cookie,可以将他的path设置成"/".

      (3)可见域(domain).同大多数浏览器持久化对象一样,cookie因为安全因素遵循"同源策略",因此在某个服务器域上创建的cookie只有在本域才能访问.默认情况下domain的值就是创建cookie所在服务器的主机名,在domain设置成子域可以限制cookie只有在子域下才能访问,但浏览器不允许将cookie设置成服务器所在域之外的域.

      (4)安全性(secure).是一个布尔值,指定了网络cookie的传输方式,默认的secure值为false,意味着可以通过普通的,不安全的http连接传输.但如果设置为true,那么cookie将只在浏览器通过Https或其他的安全协议才被传输.

    Cookie的操作

    <script type="text/javascript">
    <!--
        var Cookie = {
            // 设置Cookie
            setCookie: function(name, value, expires, path, domain){
                document.cookie = name + "=" + escape( value ) + 
                ( ( expires ) ? ";expires=" + expires.toGMTString() : "" ) +
                ( ( path ) ? ";path=" + path : "" ) + 
                ( ( domain ) ? ";domain=" + domain : "" );
            },
            // 获取Cookie
            getCookie: function( name ){
                var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
                if(arr != null) return unescape(arr[2]); return null;
            },
            // 删除Cookie
            delCookie: function( name ){
                var d = new Date();
                d.setTime(d.getTime() - 3600 * 1000);
                this.setCookie(name, "", d);
            }
        }
    
        Cookie.setCookie("a", 34);    // 设置cookie为 name : a; value : 34
        Cookie.delCookie("a")          // 删除name为a的cookie
        alert(Cookie.getCookie("a")); // 返回null 因为cookie已经删除
    //-->
    </script> 
  • 相关阅读:
    JavaScript npm/nrm 切换安装依赖的镜像源
    Vue Vuex中的严格模式/实例解析/dispatch/commit /state/getters
    Vuex mapGetter的基本使用
    Springboot 整合Mybatis-plus
    SEO基本功:站内优化的一些基本手段
    解决使用logstash中jdbc导入mysql中的数据到elasticsearch中tinyint类型被转成布尔型的问题的方法
    【重大好消息】elasticsearch 7.3版本已经可以免费使用x-pack就可以设置账号和密码了,让你的数据不再裸奔
    elasticsearch7.3版本已经不需要额外安装中文分词插件了
    网络案例分析之999皮炎平出鹤顶红色号的口红
    php框架symfony踩坑苦旅(1)
  • 原文地址:https://www.cnblogs.com/guDouMaoNing/p/4324245.html
Copyright © 2011-2022 走看看