在浏览器与会话中将数据存储为cookie

时间:2013-12-21 02:20:47

标签: java java-ee cookies

我正在尝试了解有关JAVA Web开发的更多信息。我主要专注于尝试理解用户输入的数据(可能是通过填写多页表单的过程),当用户从一个页面移动到另一个页面时进行管理。

根据我收集的内容,您可以在服务器端的会话中存储数据。我也在学习存储在浏览器中的cookie。是否有一般规则用于确定应该在cookie中存储哪些数据与何时应该在会话中存储数据(session.setAttribute),还是这些完全不同的概念?

由于

2 个答案:

答案 0 :(得分:2)

会话/ cookie的基础知识是这样的。

会话通常是服务器存储有关用户数据的一种方式。这可以通过各种方式完成,从内存,文件到数据库。当用户在您的网站上反弹时,您可以使用此会话存储您需要拥有的任何内容。它被分配了一个ID(会话ID),您通常不需要担心太多。在大多数Web语言中,您可以使用某些功能轻松访问用户会话,而无需处理ID。

现在,由于网络是无状态的 - 这意味着实际上没有办法知道访问过网页A的用户与访问网页B的用户相同,因此我们希望确保用户随身携带会话ID。这可以通过多种方式完成,但最常见的方法是使用会话cookie,这是一个由服务器自动设置的特殊cookie,仅用于传递会话。它也可以在URL中传递(我确定你已经看过像index.php?sessid = 01223 ..这样的东西)以及标题等等。

当大多数人谈论向cookie添加信息时,他们不是在谈论会话cookie,而是关于您专门设置的自定义cookie。您希望这样做的唯一原因是,您需要在会话期限之外存储信息(在浏览器关闭时结束)。一个很好的例子是许多网站的“记住我”功能。

因此,除非您需要持续很长时间才能使用会话。

答案 1 :(得分:1)

是。实际上有一些规则。首先,浏览器会在每次请求时发送cookie数据;会话数据保存在服务器上(而不是每次请求都重新传输)。但是,通常会话ID与coookie一起使用。这使服务器能够识别客户端。