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的区别与联系的主要内容,如果未能解决你的问题,请参考以下文章