COOKIE和SESSION
2015-05-04 21:54
381 查看
COOKIE 原理:
首先是客户端(浏览器)请求某个页面,如login.php 服务执行了该php脚本,并给浏览器响应一个COOKIE变量(也就在在HTTP的响应头中有一条Set-Cookie:user=yqc)
然后客户端将COOKIE保存,以后的每次访问都会在HTTP请求头中添加一条Cookie:user=yqc,这样每次都会发送cookie给服务器
COOKIE的生命周期是如果设置了生命周期,不管是否关闭浏览器,COOKIE都一定在生命周期结束后才失效(删除了浏览器的COOKIE文件也会是COOKIE失效)
如果不设置COOKIE的生命周期,COOKIE会一直存在,只到关闭浏览器,或者是删除浏览器COOKIE文件
COOKIE的生效范围(注意:路径定义是以根目录(WWW目录)为路径基础的)setcookie(‘username’,’yqc’,time()+3600,’/’);
PHP中的COOKIE数组,是根据浏览器的HTTP请求头信息中的Cookie:user=yqc 来创建COOKIE数组, 所有COOKIE是保存在客户端(浏览器)中,而不是存在服务器
COOKIE 失效:cookie的生命周期设置为过去的时间:如time()-1;
COOKIE 用途:比如可以用来记住用户名,浏览历史,等安全性要求不高的地方
SESSION的原理:
依然和上面的一样,浏览器先是请求服务器某个脚本,服务器执行某个脚本,设置了
并给浏览器返回了一个session_name()=xxxxx(例如:Set-Cookie PHPSESSID=tvjel2l8579rp3idhbpifutbs2; path=/),cookie的值就是服务器端的session文件的文件名
然后客户端将服务器发回的cookie凭证保存好,每次只需要将这个凭证放在http请求头信息里面一起请求服务器,服务器就会根据这个cookie凭证。获取服务器自己保存的
session的生命周期,在php.ini中session.cookie_lifetime设置,默认是0(代表只有关闭浏览器才会注销session)
设置SESSION.首先所有的SESSION操作必须要session_start,设置
注销session分为两步:
1注销客服端session_name() (即PHPSESSID),也就是setcookie(session_name(),”,time()-1,’/’);
2.1删除session某一个单元,
2.2注销整个session数组,session_unset()或者$_SESSION = array();这种未删除tmp目录下面的文件
2.3注销整个session和删除文件,session_destroy();
session 相关的php.ini中的配置
session_name session.name
session在服务器中保存的临时目录 session.save_path(1469行)
自动session_start() session.auto_start
session在客户端的session_name(PHPSESSID)cookie的生命周期 session.cookie_lifetime
COOKIE和SESSION的比较:
存储地点:客户端 服务器端
安全性: 低,易伪造 高
可存储类型:不能存放数组/对象/资源 除了资源类型其他都可以
创建方式:setcookie()函数 session_start()开启后设置$_SESSION数组的值
读取:
销毁:
首先是客户端(浏览器)请求某个页面,如login.php 服务执行了该php脚本,并给浏览器响应一个COOKIE变量(也就在在HTTP的响应头中有一条Set-Cookie:user=yqc)
然后客户端将COOKIE保存,以后的每次访问都会在HTTP请求头中添加一条Cookie:user=yqc,这样每次都会发送cookie给服务器
COOKIE的生命周期是如果设置了生命周期,不管是否关闭浏览器,COOKIE都一定在生命周期结束后才失效(删除了浏览器的COOKIE文件也会是COOKIE失效)
如果不设置COOKIE的生命周期,COOKIE会一直存在,只到关闭浏览器,或者是删除浏览器COOKIE文件
COOKIE的生效范围(注意:路径定义是以根目录(WWW目录)为路径基础的)setcookie(‘username’,’yqc’,time()+3600,’/’);
PHP中的COOKIE数组,是根据浏览器的HTTP请求头信息中的Cookie:user=yqc 来创建COOKIE数组, 所有COOKIE是保存在客户端(浏览器)中,而不是存在服务器
COOKIE 失效:cookie的生命周期设置为过去的时间:如time()-1;
COOKIE 用途:比如可以用来记住用户名,浏览历史,等安全性要求不高的地方
SESSION的原理:
依然和上面的一样,浏览器先是请求服务器某个脚本,服务器执行某个脚本,设置了
$_SESSION[user] = yqc,并将session数组保存一个session临时文件,放在在php.ini中设置的session.save_path下面的缓存目录中,如果没有设置就放在系统的缓存目录中
并给浏览器返回了一个session_name()=xxxxx(例如:Set-Cookie PHPSESSID=tvjel2l8579rp3idhbpifutbs2; path=/),cookie的值就是服务器端的session文件的文件名
然后客户端将服务器发回的cookie凭证保存好,每次只需要将这个凭证放在http请求头信息里面一起请求服务器,服务器就会根据这个cookie凭证。获取服务器自己保存的
$_SESSION数组信息,在服务器端进行处理,
session的生命周期,在php.ini中session.cookie_lifetime设置,默认是0(代表只有关闭浏览器才会注销session)
设置SESSION.首先所有的SESSION操作必须要session_start,设置
session $_SESSION['user'] = 'yqc';
注销session分为两步:
1注销客服端session_name() (即PHPSESSID),也就是setcookie(session_name(),”,time()-1,’/’);
2.1删除session某一个单元,
unset($_SESSION['user']);
2.2注销整个session数组,session_unset()或者$_SESSION = array();这种未删除tmp目录下面的文件
2.3注销整个session和删除文件,session_destroy();
session 相关的php.ini中的配置
session_name session.name
session在服务器中保存的临时目录 session.save_path(1469行)
自动session_start() session.auto_start
session在客户端的session_name(PHPSESSID)cookie的生命周期 session.cookie_lifetime
COOKIE和SESSION的比较:
存储地点:客户端 服务器端
安全性: 低,易伪造 高
可存储类型:不能存放数组/对象/资源 除了资源类型其他都可以
创建方式:setcookie()函数 session_start()开启后设置$_SESSION数组的值
读取:
$_COOKIE $_SESSION
销毁:
setcookie $_SESSION = array();session_destroy()
相关文章推荐
- Java程序员从笨鸟到菜鸟之(二十二)华山论session和cookie机制
- 如何清除jsp页面缓存、cookie、session?
- cookie和session的区别和用法
- cookie session
- tomcat多域名共享cookie,共享session以及修改sessionCookieName的解决方案
- Session与Cookie 区别
- PHP基础----PHP 会话管理----22Cookie 和 Session 的概念与区别
- cookie和session
- cookie和session
- 利用session+application+cookie 实现单态登陆,且解决浏览器意外关闭的问题
- PHP 超全局变量详解 $GLOBALS $_SERVER $_GET $_POST $_COOKIE $_FILES $_ENV $_REQUEST $_SESSION
- C#下的WebClient保存session和cookie的方法
- django进阶之cookie和session的使用示例
- Cookie+Session+ServletContentext的区别和用法
- cookie 和session 的区别详解
- session、cookie小结
- 关于http协议中session和cookie的区别
- Cookie和Session的作用和工作原理
- cookie,session,token
- Asp.net中Application Session Cookie ViewState Cache Hidden