重新认识之:cookie篇

关于对cookie的认识,一直都是停留在 百度百科 或者一些别人写的帖子上,自己从未深入的理解,今天决定来好好探索

1. Cookie是什么?

  Cookie 是由 Web 服务器保存在用户客户端上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。

  Cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。

  这里你可能会存在一个疑问:"无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息"该作何理解?暂且将这个问题放一放

2.如何设置Cookie?

  1)客户端

<script type="text/javascript">
    /**
     * name: 键
     * value: 值
     * expire: 过期时间(天)
     */
    function setCookie(name, value, expire) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate()+expire);
        document.cookie = name + "=" + escape(value) + ((expire===undefined) ? "" : ";expires="+exdate.toGMTString())
    }
    setCookie('name', 'gaoxiong', 10);//设置有效期为10天,键为name,值为gaoxiong
</script>

  2)服务端(以PHP为例)

<?php
    # 语法: setcookie(name, value, expire, path, domain);
    setcookie('user', 'gaoxiong', time()+3600);
?>

3.Cookie工作原理

  一般来说,Cookie通过HTTP Headers从服务器端返回到浏览器上

  以第2点为例,在grovefun.com/basic/index.php文件上设置该cookie:

  第一步:服务端设置的cookie会在响应头上体现出来

  
  第二步:浏览器将响应头中的cookie存在本地:

  

  当浏览器再次请求时就会在请求头上携带该站点下的所有Cookie,从而完成验证

    

  如何在服务端获取客户端的Cookie?在PHP中Cookie被保存在$_COOKIE数组中。

  

posted on 2017-03-25 22:22  码先生  阅读(178)  评论(0编辑  收藏  举报