猿问

Cookie与会话

我几个月前开始使用PHP。为了为我的网站创建一个登录系统,我阅读了有关cookie和会话及其区别(cookie存储在用户的浏览器中以及服务器上的会话中)的信息。当时,我更喜欢cookie(谁不喜欢cookie ?!),只是说:“谁在乎?我在将它存储在服务器中没有任何好处”,所以,我继续使用cookie我的学士毕业项目。但是,在完成了我的应用程序的大部分工作之后,我听说对于存储用户ID的特定情况,会话更为合适。因此,我开始考虑如果陪审团问我为什么要使用Cookie而不是会议?我有这个理由(我不需要在内部存储有关用户的信息)。?还是不止于此? 
您能告诉我使用Cookie保留用户ID的优缺点吗?

谢谢大家在StackOverflow中!


江户川乱折腾
浏览 315回答 3
3回答

红糖糍粑

区分这两个基本概念。会议:IDU存储在服务器(即服务器端)上更安全(因为1)无法设置过期时间,当用户关闭浏览器时,会话变量将过期。(如今,它默认存储在php中24分钟)饼干:IDU存储在Web浏览器(即客户端)中不太安全,因为黑客可以到达并获取您的信息(因为1)可以设置过期时间(有关更多信息,请参见setcookies())当您需要存储短期信息/值(例如用于计算,测量,查询等的变量)时,首选会话。当您需要存储长期信息/值(例如用户帐户)时,首选使用Cookie(这样,即使他们将计算机关闭2天,他们的帐户仍会登录)。我想不出Cookie的许多示例,因为在大多数情况下都没有采用它。

慕田峪4524236

SESSIONS ENDS WHEN USER CLOSES THEIR BROWSER,COOKIES END DEPENDING ON THE LIFETIME YOU SET FOR IT. SO THEY CAN LAST FOR YEARS这是您选择的主要区别,如果您希望长时间记住该ID,则需要使用Cookie。否则,如果您只想让网站识别此访问的用户,那么就可以使用会话。会话存储在您的php服务器将生成的文件中。为了记住哪个用户的文件,php还将在用户的浏览器上设置一个cookie,该cookie持有该会话文件的id,因此在他们下次访问时php将读取该文件并重新加载会话。现在,php默认情况下会在每个间隔清除会话,并且会话的命名约定也会使其自动过期。此外,一旦关闭浏览器或清除历史记录,浏览器将不会保留保存会话ID的cookie。重要的是要注意,当今的浏览器还支持另一种存储引擎,例如LocalStorage,SessionStorage和其他webdb引擎,JavaScript代码可使用这些引擎将数据保存到您的计算机以记住您。例如,如果您在Facebook内部打开JavaScript控制台,然后键入“ localStorage”,您将看到Facebook用来记住您的所有变量而没有cookie。
随时随地看视频慕课网APP
我要回答