会话和cookie是一回事吗?

时间:2010-09-24 12:58:20

标签: asp.net

由于会话和cookie都用于存储临时数据,它们之间有什么区别?

9 个答案:

答案 0 :(得分:6)

至于知识:

如果您将变量设置为“cookies”,那么您的用户无需在每次进入社区时登录。

Cookie将在用户的浏览器中保留,直到用户删除为止。

但会话被广泛使用,因为如果用户浏览器安全设置设置为高,您的Cookie可能会被阻止。

如果您将变量设置为“sessions”,则将使用浏览器会话跟踪用户活动,并且您的用户每次重新打开浏览器时都必须登录。此外,如果您使用“sessions”变量,则需要保护“sessions”目录,方法是将其放在Web根目录上,或者请求您的Web主机将其设置为不可浏览的目录。

关键区别在于,cookie会存储在您的硬盘中,而会话不会存储在您的硬盘中。会话基本上就像令牌,它们是在身份验证时生成的。只要打开浏览器,就可以使用会话。

希望以下链接将进一步澄清您的疑虑

http://wiki.answers.com/Q/What_is_the_difference_between_session_and_cookies http://www.allinterview.com/showanswers/74177.html

答案 1 :(得分:5)

Cookie作为文件系统上的小文本文件(持久性cookie)或浏览器内存(非持久性cookie)存储在客户端上,并传递给服务器并随每个请求和响应返回给客户端。只要到期日期未过,持久性cookie仍将在浏览器会话之间可用。浏览器关闭后,非持久性cookie将丢失 会话存储在内存中的服务器上。 Cookie经常被用作保存请求之间用户会话引用的一种方式,但是如果在客户端浏览器上禁用了cookie,也可以使用查询字符串参数来完成。

答案 2 :(得分:5)

Cookies将用户的数据存储在他们的计算机上

会话实现将用户的临时数据存储在服务器(或多个服务器,具体取决于配置)。

答案 3 :(得分:5)

在每个HTTP响应中,服务器都有机会添加标头Set-Cookie: {cookie-name}={cookie-data}; {cookie-options}

浏览器将在每个后续HTTP请求中(或由选项指定)添加标头Cookie: {cookie-name}={cookie-data}

请求#1:

POST /auth/login HTTP/1.1
Host: www.example.com

username=Justice&password=pass1234

回应#1:

HTTP/1.1 307 Temporary Redirect
Set-Cookie: user_id=928
Location: http://www.example.com/dashboard

请求#2:

GET /dashboard HTTP/1.1
Host: www.example.com
Cookie: user_id=928

回应#2:

HTTP/1.1 200 OK
Content-Type: text/html

<html>
  <head>...</head>
  <body>...</body>
</html>

以后的所有请求都会包含Cookie标题。

答案 4 :(得分:3)

Cookie是客户端,会话是服务器端

答案 5 :(得分:2)

会话存储在服务器端。您可以将inproc会话存储在内存中,也可以将会话存储在SQL数据库中。你可以阅读more here

Cookie存储在客户端的计算机上。这意味着不建议将重要细节存储在cookie中,因为客户可以轻松地操作它们。

答案 6 :(得分:2)

他们不是一回事。会话是一种概念,用于存储单个用户的浏览会话的状态。

Cookie是实现此概念的好方法,因此是“会话cookie”的广泛实践。

答案 7 :(得分:1)

Cookie是存储在客户端上的一个小文本文件,可以保存特定于域的信息,

会话在服务器端保存在内存,数据库或单独的服务器中并通过会话密钥进行加密,它们仅用于持续“会话”,因为cookie可以持续一段时间或无限期因此可用于多个会话。

答案 8 :(得分:0)

会话中存储的数据与cookie之间的主要区别在于会话中存储的数据存储在服务器端(用户无法对此类数据进行操作),而cookie存储在客户端。它们可能会被用户以某种方式操纵。如果您有非常敏感的数据 - 那么将其存储在会话中。但是,您可以存储在cookie中的所有其他数据不会使服务器过载。