Cookie和会话之间的差异?

时间:2008-12-11 14:00:47

标签: jsp session servlets cookies

我正在进行网络开发培训,并且正在学习 JSP &的的Servlet 即可。我对HttpSession有一些了解 - 我在一些示例项目中使用过它。

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

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

9 个答案:

答案 0 :(得分:295)

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

现在,当银行出纳员知道他/她的记忆问题时,他/她可以在一张纸上写下您的信息并为您分配一个简短的身份证号码。然后,您可以只说“我是客户12”,而不是为每笔交易提供您的帐号和驾驶执照。

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

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

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

答案 1 :(得分:176)

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

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

答案 2 :(得分:4)

Cookie和会话都存储有关用户的信息(使HTTP请求有状态),但区别在于cookie存储客户端(浏览器)上的信息以及服务器端的会话存储信息。 Cookie在某种意义上是有限的,它存储有限用户的信息,并且只为每个用户存储有限的内容。会议不受此限制。

答案 3 :(得分:1)

Cookie基本上是跨Web浏览器访问的全局数组。很多次用于发送/接收值。它充当存储机制来访问表单之间的值。浏览器可以禁用Cookie,这会对会话中的使用添加约束。

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

答案 4 :(得分:0)

对此线程已经有很多贡献,只需总结一个序列图以另一种方式说明它。

enter image description here

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

答案 5 :(得分:0)

Google JSESSIONID 。这将解释Servlet API最初如何使用URL重写,然后,如果启用了cookie,则使用cookie来管理会话。

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

Cookie 以文本文件格式存储在浏览器中。它存储了限制数据量。它只允许 4kb [4096bytes] 。$ _ COOKIE变量不会持有多个具有相同名称的cookie

我们可以轻松访问Cookie值。因此安全性较低 setcookie()功能必须出现在

之前
<html> 

标签

会话存储在服务器端。它存储了无限量的数据。它在会话中保存多个变量。我们无法轻松访问Cookie值。因此更安全

链接: difference-between-cookies-and-sessions

答案 8 :(得分:0)

Asp.net中的会话:

1.在整个应用程序中保存数据。

2.如果当前会话处于活动状态,则表示数据。如果我们需要一些数据可以从多个控制器的acitons和视图访问,那么会话就是存储和检索数据的方式。

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

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

豫ICP备18024241号-1