一般大型系统使用cookie,而非session。
如果页面输入的参数为:用户名(name),输入值为:rongwenbin。
当我们在代码中调用session_start();时,PHP会同时往服务器session的存放目录(默认为/tmp/)和客户端的cookie目录各生成一个文件。session文件名称像这样:
格式为sess_{SESSIONID} ,这时session文件中没有任何内容,当我们在session_start(); 后面添加了这两行代码:
$_SESSION['name'] = 'rongwenbin';
这时文件(服务器sess_{SESSIONID})就有内容了:
name|s:10:"rongwenbin";
在客户端生成的cookie名称为:"PHPSESSID",cookie内容:是一串字符,其实这串字符就是{SESSIONID}(类似2bd170b3f86523f1b1b60b55ffde0f66)。
2、cookie方式:
服务器PHP代码调用setcookie("name","rongwenbin",time()+24*60*60)(保存一天),则通知客户端生成对应的cookie:
cookie名称为:name,内容为:rongwenbin。
跳转到其他页面后,对应的PHP代码通过$_COOKIE["name"]即可获取cookie值。
3、客户端传递cookie、session
目前浏览器基本上都会在消息头中上传cookie给服务器。
Accept | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
Accept-Encoding | gzip, deflate |
Accept-Language | zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 |
Connection | keep-alive |
Cookie | PHPSESSID=5mhejrudmh3cp8jl37oe47vod4 |
Host | 127.0.0.1 |
Referer | http://127.0.0.1/wordpress/ |
User-Agent | Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0 |