浅谈Cookie

来源:互联网 发布:php字符串替换 全部 编辑:程序博客网 时间:2024/06/16 01:24

这段时间闲暇之余看PHP,看到cookie之后感觉对它们理解更
深了一点,遂写下感想以让大家了解,如有不对之处,敬请指
出,保证打不死你!

以前一直对于它还是比较陌生的,作为一个IT从业人员,尤其
是想致力于发展成全栈式人员(其实这只是一个梦想,只是想
连接的更多一点,哈哈),一直想看但每每都没有时间或者有
时间却没有想到去看,后来看PHP,看到其中对cookie的解释
才清楚它的作用及用途,废话不说,开始正题。

1.cookie导读
cookie一种存储机制,是从一个web页到下一个页面的数据传递方法,
存储在客户端,可以说,掌握cookie技术,对于web网站页面间信息
传递的安全性是必不可少的。当然还有一个Session,本次不谈,如
有机会再剖出Session的相关文章,读者也可自行度娘。

2.了解cookie
没有了解cookie之前,只知道可以区分用户,那么他是怎么区分的呢,
还有它还可以做些什么等等,并不是特别清楚。后来知道它是在HTTP
协议下,服务器或脚本可以维护客户工作站上信息的一种方式,如很
多个人定制化网站大都是利用cookie来区分不同用户,从而显示与用
户对应的内容,下面具体分析它的功能及创建(cookie)、读取
(cookie)、删除(cookie)和其生命周期。

3.什么是cookie
Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。
简单来说,就是在web服务器暂时存储在用户硬盘上的一个文本文件,并
随后被web浏览器读取。当用户再次访问web网站时,网站通过读取cookies
文件里的记录的特定信息(如上次访问的位置、花费的时间、用户名和密码
等),从而做出迅速响应,如在页面中不需要输入用户名和密码即可直接登
录网站等。有一个注意的地方是:cookies文件是一个简单又普通的文本文
件,而不是一个程序,里面的内容大都经过了加密处理,表面上看是一些字
母和数字的结合,只有服务器的CGI处理程序才知道其中蕴含的内容。

3.1 cookie的功能    (1)记录访客的信息。如可以利用它里面的信息,知道访客的浏览信息,便        于经常性的维护,也可通过记录下来的信息让用户直接不用输入账号密码登录等。    (2)在页面间传递变量。浏览器不会保存当前页面上的任何变量信息,当页        面被关闭时页面上所有的变量信息也会消失,可以利用cookie把变量保存下        来,然后子啊下一页通过读取该cookie来获取上一页的用户设置或者选择变        量值,进而继续更好更快捷的为用户提供服务。    (3)将所查看的Internet页存储在Cookie临时文件中,提高用户浏览速度。    这里有一个需要注意的地方是,不建议用cookie保存数据集或其它大量数据,并非    所有的浏览器都支持cookie,并且数据信息是以明文文本形式保存在客户端计算机    中,因此最好不要保存敏感的、未加密的数据,以免造成数据信息的泄露。

4.创建cookie
在PHP中通过setcookie()函数创建cookie,在创建cookie之前必须了解的是,cookie是HTTP头标组成部分,尔头标必须在页面其它内容之前发送,它必须首先输出,若在setcookie()函数之前输出一个HTTP标记或echo语句,甚至一个空行都会报错。下面是该函数
bool setcookie(string name[,string value[,int expire[,string path[,string domain[,int secure]]]]])
具体参数说明请自行度娘,在此就不累述,敬请谅解~~~
示例代码如下:

        <?php            setcookie("TMCookie",'www.ml.com');        >

5.读取cookie
在PHP中可以通过超级全局数组$_COOKIE[]来读取浏览器端的cookie值
。示例代码如下:

        <?php            if(!isset($_COOKIE["visittime"])){//检测Cookie文件是否存在,如果不存在走if里面代码               setcookie("visittime",date("y-m-d H:i:s"));//设置一个cookie变量               echo "欢迎你第一次访问网站!";//输出字符串            }else{//如果cookie存在                  setcookie("visittime",date("y-m-d H:i:s"),time()+60);//设置保存cookie失效时间的变量                  echo "你上次访问的网站时间为:".$_COOKIE["visittime"];//输出上次访问网站的时间                  echo "<br>";//换行            }            echo "你本次访问的网站时间为:".date("y-m-d H:i:s");//输出当前访问时间        >     注意:如果未设置cookie到期时间,则在关闭浏览器时自动删除cookie数据     ,如果cookie设置了到期时间,浏览器将会记住cookie数据,即使重启计算     机,只要没到期,在访问网站时也会读取到数据信息。

6.删除cookie
当cookie被创建后,如果没有设置cookie失效时间,则cookie文件会在
关闭浏览器时被自动删除,如果要在关闭浏览器之前删除cookie。则删
除cookie的方法有两种:(1).使用setcookie()函数删除。(2).在浏览器中
手动删除cookie
(1)使用setcookie(“name”,time()-1);//time()函数返回以秒表示当前的时
间戳,把过期时间减1秒就会得到过去的时间,从而删除cookie
(2)在浏览器中手动删除,则比较方便简单,在”工具”–>”Internet选项”对
话框中,”常规”选项卡中点击”删除cookie”即可删除全部cookie文件。

7.cookie生命周期
如果cookie不设置时间,就表示它的生命周期以浏览器页面存活时间为
主,只要关闭浏览器,cookie就会自动消失,这种cookie就被称为会话
cookie,一般不保存在硬盘上,而是在内存中。如果设置了过期时间,
那么浏览器会把cookie保存到硬盘上,再次打开浏览器时只要没到期会
依然有效。

注意:虽然cookie可以产期保存在客户端浏览器中,但也不是一成不变的,因
为浏览器最多允许存储300个cookie文件,每个cookie文件大小不超过4KB,
每个域名最多支持20个cookie,如果达到上限,浏览器会随机删除cookie。

总结:码了这么多字,很有成就感,希望我的分享能帮助到浏览的同学,大家一起进步,谢谢!