会话和Cookie是如何工作的?

9

当我创建一个会话变量,其中保存了用户名和密码,它的内部工作原理是什么?同样的问题也适用于普通的cookie,其中保存了信息。cookie和session包含哪些类型的信息?它们之间有什么区别?


1
@ Bobby,看一下问题的日志。一开始它看起来不是那样的。 - marcgg
3
如果他花费了一半的时间研究这些问题,就像在这个网站注册和发帖子上所花费的时间一样,他早就能够得到答案了。 - Azeem.Butt
6
NSD,原帖作者显然缺乏足够的知识或背景来筛选他们将在该主题上找到的众多答案。这是 Stack Overflow 的一部分。 - Alana Storm
@marcgg,从来不知道SO有问题日志。好主意。 - Teej
3个回答

12

很棒的文章。谢谢。 - tswaehn
请包含涉及用户问题的必要段落。 - Suraj Jain
网络存档链接:http://web.archive.org/web/20170425074935/http://shiflett.org/articles/the-truth-about-sessions - Suraj Jain

4
总之,cookie是客户端计算机上的一个文件。您可以在其中存储任何内容(对象、文本等)。会话对象可以以与存储某些文本相同的方式存储在cookie中。请记住,会话!= cookie,因为有时您可以将会话对象存储在数据库中。
但是,您仍然需要阅读一些文档,我想。
wikipedia上看到:
在计算机中,cookie(也称为跟踪cookie、浏览器cookie和HTTP cookie)是由Web浏览器存储在用户计算机上的小型文本片段。cookie由一个或多个名称-值对组成,包含一些信息比如用户偏好、购物车内容、基于服务器的会话标识符或其他网站使用的数据。它作为HTTP头由Web服务器发送到Web浏览器,然后由浏览器每次访问该服务器时原样发送回来。cookie可用于身份验证、会话跟踪(状态维护)以及记忆有关用户的特定信息,例如站点偏好或其电子购物车的内容。术语“cookie”源自“magic cookie”,这是UNIX计算中的一个众所周知的概念,启发了浏览器cookie的想法和名称。存在一些替代cookie的选择;每个选择都有其自己的用途、优点和缺点。由于cookie只是简单的文本片段,因此它们不是可执行文件。它们既不是间谍软件也不是病毒,尽管来自某些站点的cookie被许多反间谍软件产品检测到,因为它们可以允许用户在访问各种站点时被跟踪。大多数现代浏览器允许用户决定是否接受cookie以及保留它们的时间范围,但拒绝cookie会使一些网站无法使用。例如,使用cookie实现的购物车或登录系统如果禁用cookie则无法工作。

2

通常,会话数据存储在服务器上,并使用跟踪cookie将用户与数据关联。另一方面,cookie直接设置在用户的浏览器中。

一个关键的区别:会话变量通常无法被最终用户看到,但是cookie可以(通过正确的浏览器插件)

此外,如果您有多个前端Web服务器,则cookie将发送到所有前端服务器,但是如果没有额外的工作,会话数据不会在它们之间共享。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接