1, 什么是会话
会话可简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。
2, cookie技术
cookie(小甜饼)是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样web资源处理的就是用户各自的数据了。
3, 服务器添加cookie
test1.php:
setCookie("name","shunping",time()+3600);
(1) 当浏览器访问test1.php页面的时候,服务器就会以Set-Cookie:"name=shunping; expires=Mon, 26-Sep-2016 08:56:31 GMT; Max-Age=3600"响应,当浏览器获得该cookie信息后,就保存到本地机器磁盘中。
(2) 如果没有第三个时间参数,Cookie信息不会保存到客户端,当浏览器会话结束,cookie失效。
(3) cookie是以key/value形式保存的,value为字符串样式。
(4) cookie可以保存中文,默认会对中文进行urlencode进行编码。
4, 服务器读取客户端cookie
test2.php:
echo $_COOKIE['name'];
$_COOKIE是超全局变量
5, 服务器更新cookie,实际重新添加cookie。
setCookie("name","shunping",time()+3600); //添加cookie setCookie("name","liuhuamei",time()+3000); //修改cookie
6, 服务器删除cookie
(1) 删除某个指定cookie,删除cookie还使用setCookie,只不过第三个参数time()减某个值即可。
setCookie(key,"",time()-60);
(2) 删除所有cookie
foreach($_COOKIE as $key=>$value){ setCookie($key,"",time()-60); }
(3) 如果所有的cookie都删除了,则客户端的浏览器会将cookie文件删除。
7, Cookie总结
(1) 一个cookie只能标识一种字符串信息,它至少含有一个标识该信息的名称(name)和设置值(value)。
(2) 一个web站点可以给一个web浏览器发送多个cookie,一个web浏览器可以存储多个web站点提供的cookie。
(3) 如果创建了一个cookie,并将它发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户退出浏览器后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用expire,并给出一个以秒为单位的时间。要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制。