cookie和session的比较
1、cookie是存放在用户的浏览器中,是服务端通过返回包中的set-cookie来设置,cookie表示用户的浏览去和服务器之间的会话状态,登陆成功之后方可获取cookie数据,该数据一般具有时效性,是小之后需要用户重新去登陆。有了cookie之后,用户的每次请求都会带上cookie,服务端会验证cookie的合法性和时效性,cookie的发送需要遵循浏览器的同源策略。只要cookie发生改变,服务器就会要求重新登陆
cookie管理
首先需要服务器給用户分发cookie数据,setcookie(name,value,表示式,路径,域范围),后三者可以不写,其中表达式主要是用来设置cookie时效性。
!!!注意:setcookie需要写在HTML代码前
服务器获取cookie:$_COOKIE[“cookie的名字”] 注意:需要使用当前打开的浏览器去访问,不能换用其他浏览器
删除cookie:setcookie(“loginInfo”,””,time()-3600),通过服务器去删除
2、Session是存放在服务端,表示用户和服务器时间的会话状态,session和cookie是一一对应的,服务器也需要级住哪个用户登陆该站点,一般情况下,session以文件的形式存放在网站根目录的/tmp目录中
将/tmp中删干净
访问http://localhost/DVWA-master/
再查看/tmp
出现了session文件,用notepad++打开
登陆信息存放在其中
Session的管理:
工作机制:为用户创建唯一的uid,在该uid的基础上存储变量,uid放在cookie或者通过URL去传输(相比较而言后者不安全)
在HTML代码之前通过session_start()开启,开启之后可以通过session[]数组(一个超级全局变量)存储某些变量。
销毁session的方式(和session_start()一起使用):unset() session_destory()后者慎用,会清除所有session数据。