cookie简单理解

来源:互联网 发布:软件行业职位分类 编辑:程序博客网 时间:2024/06/06 04:44

 cookie 是浏览器端存储数据的技术. 服务器不能存储 cookie, 但是服务器可以发送请求命令浏览器存储 cookie.

  如何存储 cookie
        在 document 中有一个属性 叫 cookie
        cookie 是一个 键值对, 是一个使用 等号 连接的键值, 是一个字符串
        cookie 直接使用 赋值来追加数据
        多个 cookie 的数据使用 分号空格 连接, 并且他也是一个字符串
    cookie 的存储特点
        1> cookie 默认是生命周期是浏览器关闭以前
        2> cookie 在多个页面中可以共享数据
        3> cookie 可以伴随 http 请求传递数据
        4> cookie 在存储非 ascii 码的时候要使用指定方法来转换
            escape, unescape
            encodeURI, decodeURI
            encodeURIComponent, decodeURIComponent
        5> cookie 的存储可以设置生命周期
            给每一个 cookie 值添加一个属性 expires, 其取值为一个 时间类型的字符串
            今天基本上使用 max-age 来代替 expires 属性, max-age 取值是秒数
        6> cookie 的访问级别( path )
            使用 path 属性可以配置 cookie 的访问级别, 即哪一个文件夹下的文件可以访问该 cookie
            默认是 ./
            如果希望上一级目录可以访问, 就给 path 赋值上一级目录的目录名
            如果希望整个网站都可以访问, 那么使用 path=/ 即可
        7> cookie 不能够跨域, 但是可以是设定同域的访问级别( domain )
        8> cookie 还有一个特性 secure
            cookie 会伴随着 http 请求发送.
            secure 如果设置为 true 表示只有在 https 请求的时候发送
        9> 一般如果希望不使用 cookie 来存储数据( 会随着 HTTP 请求提交 )
            可以使用隐藏域: <input type="hidden" >
            html5 开始引入了其他的存储数据的办法: 本地存储( localStorage )




 如何读取 cookie 中的数据
    读取的时候会将所有的数据都一并取出来, 但是并非全部数据我都需要, 因此这里需要对数据进行解析
    cookie 数据格式: '键=值; 键=值; 键=值'
    获得数据的时候理论上是利用键名取对应 的值
    字典结构( 键值对结构 )


    将 cookie 字符串转换成 一个 对象的算法
    
    function getCookie() {
        var cookies = document.cookie.split( ';' ).map(function ( v ) { return v.trim(); });
        var cookie = {};
        cookies.forEach( function ( v ) {
            var kv = v.split( '=' );
            cookie[ kv[ 0 ] ] = kv[ 1 ];
        });
        return cookie;
    }




    在服务器端如何操作 cookie 和 session
    $_COOKIE
    $_SESSION


    cookie 是浏览器端的操作, 所以服务器 不 可以操作 cookie.
    在服务器端允许向 浏览器发送一个 set-cookie 的响应

原创粉丝点击