session与cookie的区别笔记:
1:cookie 用于识别 用户,每当相同的计算机通过浏览器请求页面时,同时会发送cookie,(1)cookie的设置,通过setcookie()函数来设置cookie,例如setcookie("cookie名称","cookie值","过期时间","有效路径","有效域名","http传递") , 例如 setcookie("name","value"),又如:setcookie("name","value",time()+3600);(2)接受和处理cookie,用户端与服务端的web通信协议是http。而PHP通过http取得用户数据惯用的三种方法分别是:POST方法、GET方法还有Cookie。而PHP默认传递方法正是Cookie,也是最佳方法(3)删除cookie,两种方法:setcookie("name","")。setcookie("name","value",time()); 使用cookie注意点:在HTML文件本身的内容输出之前调用Cookie函数。
2:session机制是一种服务器端的机制,:每一个网站访客都会被分配给一个唯一的标志符,即会话ID,它的存放形式无非两种:要么经过url传递,要么保存在客户端的Cookies里,url方式传递安全性肯定太差,PHP的会话机制是通过设置Cookie,在Cookie中保存会话 id(Session ID),在服务器端会生成session文件,与用户进行关联,Web应用程序存储与这些Session相关的数据,并在各页面间进行传递.(1)session的几个相关函数,session_start():启用session机制,在需要用到session的程序文件的最开始调它,session_register():注册session变量,session_unregister(): 删除session变量(一个一个删除),session_is_registered(): 判断session变量是否注册,session_distroy(): 销毁所有session变量(所有session变量销毁,包括文件)(2)在PHP.ini里的session配置session.save_handler = file 用于读取/回写session数据的方式,默认是files。它会让PHP的session管理函数使用指定的文本文件存储session数据(3)session.save_path="xampmp/temp/"指定保存session文件的目录,可以指定到别的目录,但是指定目录必须要有httpd守护进程属主(比如apache或www等)写权限,否则无法回存session数据。它还可以写成这样session.save_path = “N;/path” 其中N是整数。这样使得不是所有的session文件都保存在同一个目录中,而是分散在不同目录。这对于服务器处理大量session文件是很有帮助的。 (注:目录需要自己手工创建)(3)session.auto_start 如果启用该选项,用户的每次请求都会初始化session。不推荐使用,最好通过session_start()显示地初始化session。
cookie与session的区别与关系
区别:
1:session存储在服务器位置上,可以通过php.ini里面配置session相关配置
2:cookie存储在客户端上的上(其实可以分两种:
(1),持久性cookie,设置了cookie的时间,以文件方式存在硬盘上,
(2),会话cookie,没有设置cookie时间,cookie的生命周期也就是关闭浏览器前就消失,一般不会保存在硬盘,而是保存在内存上)
关系:
cookie通过http报头发送:
Cookie name=PHP%BB%B4%B1%B1; PHPSESSID=cpt2ah3pi4cu7lo69nfbfllbo7
其中PHPSESSID就是关联服务器session的重要参数
再看session文件:sess_cpt2ah3pi4cu7lo69nfbfllbo7
session_id的生成格式就是:sess_加上一串PHPSESSID的值
我们可以这样理解:
当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识 (称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来 使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相 关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应 中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给 服务器。一般这个cookie的名字都是类似于SEEESIONID
很好的一篇文章只是忘了文章出处了