php session怎么理解啊,和cookie的区别在哪里?有没有具体的例子
展开全部
session是为了弥补Web服务无状态会话的一个服务器端保存的一个临时用户数据,根据这个数据,服务器可以重建用户会话信息。
cookie是为了适应本地脚本临时数据存储和与服务器端交互进行会话认证的数据保持功能
简单的说,session需要启用cookie才能正常的使用。
抓取HTTP数据包时,会发现在请求网页内容时发送COOKIE: PHPSESSID=xxxx,而在返回的头信息中包含SET-COOKIE: PHPSESSID=xxxx。如果在头信息中更改了此Cookie的值,将会导致你的用户登录状态发生变化,因为服务器端根据PHPSESSID的值去寻找相应的session文件却未能找到。
如果脱离服务器端只考虑初期HTML+脚本的方式来考虑的话,压根就没有session的文件,因为是静态的页面,不会与服务器发生后续关系(抛开ajax的请求)。所以cookie也就成为脚本运行的本地存储文件。cookie的存在形式为“键名=键值”,以“;"分隔。
持续时长的区别:
cookie有一个定义的时长,超过时长,浏览器将认为过期,会弃用并删除此cookie文件。因此即使服务器端的Session仍存在,因为cookie信息已经丢失,无法找回对应的PHPSESSID的值而无法实现会话的重建。如果不定义超时时长,则在关闭浏览器时自动失效。
session可以指定存在期限,如果超过存在时限之前,此COOKIE中PHPSESSID值对应的Session有过请求会自动延长时长,直到超过时长未请求后会通过回收机制进行清除,但不完全保证可以正常回收。如果被回收后,即使本地仍存有cookie文件,但由于对应PHPSESSID的Session文件已不存在,所以也无法重建会话。
cookie是为了适应本地脚本临时数据存储和与服务器端交互进行会话认证的数据保持功能
简单的说,session需要启用cookie才能正常的使用。
抓取HTTP数据包时,会发现在请求网页内容时发送COOKIE: PHPSESSID=xxxx,而在返回的头信息中包含SET-COOKIE: PHPSESSID=xxxx。如果在头信息中更改了此Cookie的值,将会导致你的用户登录状态发生变化,因为服务器端根据PHPSESSID的值去寻找相应的session文件却未能找到。
如果脱离服务器端只考虑初期HTML+脚本的方式来考虑的话,压根就没有session的文件,因为是静态的页面,不会与服务器发生后续关系(抛开ajax的请求)。所以cookie也就成为脚本运行的本地存储文件。cookie的存在形式为“键名=键值”,以“;"分隔。
持续时长的区别:
cookie有一个定义的时长,超过时长,浏览器将认为过期,会弃用并删除此cookie文件。因此即使服务器端的Session仍存在,因为cookie信息已经丢失,无法找回对应的PHPSESSID的值而无法实现会话的重建。如果不定义超时时长,则在关闭浏览器时自动失效。
session可以指定存在期限,如果超过存在时限之前,此COOKIE中PHPSESSID值对应的Session有过请求会自动延长时长,直到超过时长未请求后会通过回收机制进行清除,但不完全保证可以正常回收。如果被回收后,即使本地仍存有cookie文件,但由于对应PHPSESSID的Session文件已不存在,所以也无法重建会话。
展开全部
session暂时到关闭链接,cookie持久到清空浏览器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
session是存在客户端和服务器两个地方
cookie只存在客户端,
如果用户的浏览器禁用cookie 那session也会失效
cookie只存在客户端,
如果用户的浏览器禁用cookie 那session也会失效
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
COOKIE存在客户端(浏览器)
SESSION存在服务器端
SESSION存在服务器端
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询