使用session
启动会话 session_start() 存入会话 $_SESSION['key'] = $value
读取会话 $value = $_SESSION['key'] 删除会话 unset($_SESSION['key']) $_SESSION = array()
结束当前会话 session_destory()
使用cookie
创建 cookiebool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
读取 cookie$_COOKIE[key] 删除 cookiesetcookie(key,value,time()-1)
session的原理:
http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息。session就是一种保存上下文信息的机制,她是针对每一个用户的,session的内容在服务器端,通过sessionId来区分不同的客户,session是以cookie或url重写为基础的,默认用cookie来实现。
cookie的原理:
cookie确切的说分为两大类:会话cookie和持久化cookie。会话cookie是存放在客户端浏览器的内存中,他的生命周期和浏览器是一致的,当浏览器关闭会话cookie也就消失了,而持久化cookie是存放在客户端硬盘中,持久化cookie的生命周期是我们在设置cookie时候设置的那个保存时间,session的信息是通过sessionid获取的,而sessionid是存放在会话cookie当中的,当浏览器关闭的时候会话cookie消失,所以sessionid也就消失了,但是session的信息还存在服务器端,只是查不到所谓的session但它并不是不存在。
session与cookie的区别:
1. session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务端可以知道其中的信息
2. session中保存的是对象,cookie中保存的是字符串
3. session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不道德
session与cookie的联系:
session是需要借助cookie才能正常工作的,如果客户端完全禁止cookie,session将失效