cookie和Session
cookie
cookie定义
用户访问网络,服务器给当前客户机上创建的一个临时文件用来保存用户信息,以便用户下次继续访问该网络时,网站服务器能识别用户身份,常见cookie用来保存用户界面,用户id等资源。
cookie的使用
1.创建cookie:当前页面设置cookie不是立即生效,等下一个页面才能看到。1
2
3
4
5
6setcookie('name','mary',time()+24*60*60) //一天
cookie名称 cookie值 有效时间
应用:
if($_POST['name']&&$_POST['password']){
setcookie('name','mary',time()+24*60*60);
}
设置有效时间,cookie会保存在硬盘里,不设置,则保存在内存里,用户关掉页面就消失了。
cookie是http协议头的一部分,用于浏览器和服务器之间传递信息,cookie是通过http报头发送的。
2.接受cookie1
2
3if(isset($_COOKIE('name'))){
echo $_COOKIE('name');
}
3.删除cookie1
setcookie('name','',time()-1);
如何利用实现自动登录:
当用户在某个网站注册后,就会收到一个惟一用户ID
的cookie。客户后来重新连接时,这个用户ID会自动返回,服务器对它进行检查,确定它是否为注册用户且选择了自动登录,从而使用户务需给出明确的用户名和密码,就可以访问服务器上的资源。
session
session定义
服务器机制,使用类似散列表的结构来保存信息,php会给每一个访问用户创建一个session id,该id唯一
,它的存放有三种方式:
· url传递:安全性差
· 保存在客户端的cookie中:php会话机制通过设置cookie,在cookie中保存会话id(session id),在服务器会生成session文件,与用户关联。
· 保存在数据库中:安全,但是效率下降。
session的使用
1 | 启动session: |
当程序为某个用户创建一个session,服务器首先检查客户端请求是够包含session标识(session id),若有,则服务器按照session id把session检索出来使用;若无,则服务器创建一个session并且生成一个与此相关联的session id,这个session id将在本次响应中返回给客户端保存。
cookie与session之间的联系
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择.