php - ( session 与 cookie 的缺点

标签 php session session-cookies

我需要一些关于 session 的详细信息。 session 变量的缺点是什么? cookie 和 session,哪个更好?

最佳答案

我不打算在这里谈及安全问题,因为 Infotekka 已经对此进行了大量研究。您似乎在问是否应该使用 SESSION 或 COOKIE,就好像它们是彼此的替代品一样。

他们不是。他们服务于不同的目的(这是一个打字错误..但我不说了,因为这是一个很好的双关语)。

由于 HTTP 是无状态的,PHP(和其他)提供了通过使用 session 在您的应用程序中模拟状态机的能力。如果你不这样做,你将不得不在每个页面之间使用 POST/GET 来保持数据的一致性,如果用户自己转到另一个页面,那么数据将会丢失!因此,如果没有 SESSION,您将无法让用户登录到您的站点……至少不能始终如一地登录。

总而言之,SESSION 用于在不使用 HTTP 的情况下长时间保存网站多个页面之间的数据。这就是它的用途。

我想您可以使用 COOKIE 来执行此操作,但它比 cookie 复杂得多,尤其是在处理序列化到 session 的对象时。设置的 COOKIE 在下一页加载之前也无法访问,并且必须在脚本的任何输出之前设置(与任何其他 header 一样)。

session 应该就是这样——无论用户在网站上工作多长时间都坐在他们的计算机前,他们所拥有的 session 。离开时, session 结束。

Cookie 应该用于长期存储简单数据。如果他们经常访问该网站,他们可能希望为他们记住他们的用户名,以便将其存储为 cookie。请注意 Infotekka 指出的安全问题。

编辑:最后,我要补充一点,在用户和浏览器之间的每个页面请求中都会传输 COOKIE。更多 Cookie 意味着更多页面加载时间。

关于php - ( session 与 cookie 的缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5190953/

相关文章:

PHP 处理分析快照

php - 如何使用数组中的数据更新表列?

javascript - 用于检索 postgres 数据的 AJAX 函数不起作用

cookies - postman :如何删除预请求脚本中的cookie?

Swift Vapor Cookies 不工作

php - 相同的多域 session 但 session 值丢失

php - Mysql更新查询有多个order by?

android - 将 Cookie 与 Robospice Retrofit 请求一起使用

ruby-on-rails - 设置 session 变量

java - Spring Boot中如何记住用户?