PHP中session和cookie的原理及优缺点

Session

Session的机制

session机制采用的是在服务器端保持状态的方案,并且有自己对应的唯一标识session_id,区分不同用户之前的信息。

Session的工作原理

  1. 当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中;
  2. 首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量;
  3. 当执行PHP脚本时,通过使用session_register()函数注册session变量。
  4. 当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机制采用的是在服务器端保持状态的方案。

你可能感兴趣的:(PHP中session和cookie的原理及优缺点)