Session与Cookie的区别与联系

Posted gentsir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Session与Cookie的区别与联系相关的知识,希望对你有一定的参考价值。

描述两个事情的不同,一般先从概念入手,然后分析他们是怎么生成、怎么使用以及怎么消亡的:

 

1、Cookie仅由客户端生成、管理并使用,php只是发出指令要求客户端如何生成Cookie、何时过期等,但是客户端不一定会按照PHP的指令办事。

 

2、如果没有设置Cookie过期时间,Cookie会一直以文件或SQLit等DB形式存在客户端磁盘。

 

3、Session是用户进入某个网站到关闭浏览器这段时间的会话,默认以文件形式存在服务器磁盘,所以设置过多的Session会影响磁盘IO,也可以用Memory引擎存入mysql,因为内存引擎读写速度快,现在也可以指定用Redis来处理Session,这样更快,效率更高。

 

4、Session的收回机制是被动的,如果设置了生存周期,一般来说,一旦关闭浏览器Session也就被PHP自动回收了,但有时即使设置了过期时间并且关闭浏览器并不一定会删除Session,比如设置多目录多层级保存Session时,这时需要通过PHP脚本手动删除Session。

 

5、通常Cookie与Session是绑定的,即用户在没有禁用Cookie时,Cookie一般会保存sessionID及Session生存周期,如果用户删除Cookie一般会退出系统;如果没有禁用Cookie关闭浏览器Session也会立即失效,要重新登录系统。

 

6、Cookie与Session一般应于标识用户、权限认证、存储简单数据、还有就是利用P3P实现Cookie跨域单点登录(SSO:Single Sign On)。

 

以上是关于Session与Cookie的区别与联系的主要内容,如果未能解决你的问题,请参考以下文章

cookie与session的区别与联系

cookie 与 session 的区别与联系

cookie 与 session 的区别与联系

Session与Cookie的区别与联系

浅谈Session与Cookie的区别与联系

cookie和session的区别与联系