Cookie 和会话之间的差异?

我正在网络开发的培训和学习有关 JSPServlet。我有一些 HttpSession的知识-我已经在我的一些样本项目中使用它。

在浏览器中,我看到了“删除 cookies”的选项。如果我删除 cookies,它也会删除 HttpSession

Cookie 和会话是相同的吗? 它们之间有什么区别?

147607 次浏览

会话是包含用户信息的服务器端文件,而 Cookie 是包含用户信息的客户端文件。会话有一个映射到特定用户的唯一标识符。此标识符可以在 URL 中传递,也可以保存到会话 cookie 中。

大多数现代网站使用第二种方法,将标识符保存在 Cookie 中,而不是通过 URL 传递(这会带来安全风险)。您可能在不知情的情况下使用了这种方法,通过删除 cookie,您可以在删除 cookies 中包含的唯一会话标识符时有效地擦除它们的匹配会话。

谷歌 JSESSIONID。这将解释 ServletAPI 最初如何使用 URL 重写,然后,如果启用 Cookie,则使用 Cookie 来管理会话。

HTTP 是无状态的,因此客户端浏览器必须将其会话的 id 随每个请求发送到服务器。服务器通过任何方式使用这个 id 检索该会话的任何数据,从而使其在请求的生命周期内可用。

Cookie 只是一个简短的文本字符串,在客户机和服务器之间来回发送。您可以将 name=bob; password=asdfas存储在一个 cookie 中,然后来回发送该 cookie 以标识服务器端的客户端。你可以把这想象成与一个银行出纳员进行交易,这个出纳员没有短期记忆,需要你为每一笔交易确认自己的身份。当然,使用 cookie 来存储这类信息是非常不安全的。饼干的大小也是有限的。

现在,当银行出纳员知道他/她的记忆有问题时,他/她可以把你的信息写在一张纸上,然后给你一个简短的身份证号码。然后,你可以直接说“我是12号客户”,而不是给出每笔交易的账号和驾照

将其转换为 Web 服务器: 服务器将在会话对象中存储相关信息,并创建一个会话 ID,然后将其发送回 cookie 中的客户端。 当客户端发送回 Cookie 时,服务器可以简单地使用 ID 查找会话对象。因此,如果删除 cookie,会话将丢失。

另一种选择是服务器使用 URL 重写来交换会话 ID。

假设您有一个链接 -www.myserver.com/myApp.jsp,您可以遍历该页面并将每个 URL 重写为 www.myserver.com/myApp.jsp?sessionID=asdf或甚至 www.myserver.com/asdf/myApp.jsp,然后以这种方式交换标识符。这种技术由 Web 应用程序容器处理,通常通过设置使用 Cookie 会话的配置来打开。

Cookies 和 session 都存储有关用户的信息(使 HTTP 请求有状态) ,但区别在于 Cookie 存储客户端(浏览器)的信息,而 session 存储服务器端的信息。Cookie 是有限的,因为它存储有关有限用户的信息,并且只为每个用户存储有限的内容。会话不受这种方式的限制。

在 Asp.net 上的会话:

维护整个应用程序的数据。

2.如果当前会话处于活动状态,则持久存储数据。如果我们需要从多个控制器操作和视图访问某些数据,那么会话就是存储和检索数据的方法。

会话是包含用户信息的服务器端文件[会话是将用户信息映射到特定用户的唯一标识符]

将其转换为 Web 服务器: 服务器将在会话对象中存储相关信息,并创建一个会话 ID,然后将其发送回 cookie 中的客户端。当客户端发送回 Cookie 时,服务器可以简单地使用 ID 查找会话对象。因此,如果删除 cookie,会话将丢失。

Cookies 以文本文件格式存储在浏览器中。它存储的数据量是有限的。它只允许 4kb [4096字节]。$_ COOKIE 变量 not 将保存具有相同名称的多个 COOKIE

我们可以很容易地访问 cookie 值。所以它是 没那么安全.Setcookie ()函数必须在

<html>

标签。

Sessions 存储在服务器端。它存储无限量的数据。它在会话中保存多个变量。我们不能很容易地访问 cookie 值,所以它是 更安全

Cookie 基本上是一个跨浏览器访问的全局数组。多次用于发送/接收值。它充当存储机制来访问窗体之间的值。浏览器可以禁用 Cookie,因为浏览器会为 Cookie 的使用添加一个约束,以便与会话进行比较。

会话可以定义为介于登录和退出之间的内容。用户登录和退出之间的时间是一个会话。会话只为会话时间存储值,即在注销之前。 会话用于跟踪用户登录后的活动。

Cookie 是在客户端和服务器之间实现会话的一种方式,以这种方式存储在 Cookie 中的会话信息。但这不是保存会话信息的唯一方法,另一种方法是在 Url 中存储会话信息。

在这个主题上已经有很多贡献了,只要用另一种方式总结一下时序图就可以了。

enter image description here

这也是一个很好的关于这个主题的链接,https://web.stanford.edu/~ouster/cgi-bin/cs142-fall10/lecture.php?topic=cookie