Session
Session的机制
session机制采用的是在服务器端保持状态的方案,并且有自己对应的唯一标识session_id,区分不同用户之前的信息。
Session的工作原理
- 当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中;
- 首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量;
- 当执行PHP脚本时,通过使用session_register()函数注册session变量。
- 当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。
Session的优缺点
优点
唯一性、方便调用、不会过多占用资源,是存储在服务器的一组临时数据。一般情况下,我们在做用户登录时,会将用户数据存入session。这样,在任何页面都可以方便调用,而且每个客户端会产生唯一的session_id,不会混淆。并且在关闭浏览器后,服务器会有session回收机制,自动删除过期session。
缺点
在客户端是以cookie方式保存的,禁用cookie,session就失效了。
Cookie
Cookie的机制
Cookie与Session的机制原理类似,都是会为每一个用户生成一个特定的值,这次是在客户端保存,当我们打开cookie里面保存了我们个人信息的网站,它会将我们的个人信息提交到服务器,之后请求服务器相应资料信息。
Cookie的优缺点
优点
不需要服务器资源空间,持久时间更长。
缺点
客户端大小受限制,用户禁用Cookie就失效了,不安全。
Cookie和Session的区别和联系
联系
Cookie可以在客户端为session保存唯一标识。
区别
Cookie机制采用的是在客户端(浏览器)保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
网友评论