2011-02-11 78 views
1

这是正确的吗?哪一端创建会话/ cookie?

我使用前端JavaScript和会话使用后端语言(PHP,红宝石等)创建cookie?

如果这是真的,不创建会话意味着浏览器必须创建一个持有SID的会话cookie?后端语言如何创建一个cookie,是不是只能用javascript?

回答

5

php有setcookie函数来设置cookie。

Cookie只是一小段数据(名称和值),在每次请求时都会发回。您可以使用JavaScript在客户端上设置Cookie,以便在下一个请求中将其发送回服务器,但也可以使用PHP进行设置,以便在响应中将其发送到浏览器并存储在那里。我相信sessionid也存储在cookie中。

+0

如果该cookie是一个会话cookie(由php创建,而不是javascript),sessionid会存储在cookie中吗? – ajsie 2011-02-11 23:40:53

+0

是和不是。一个cookie是一个会话cookie(它在会话结束时自动销毁),当它没有过期日期时。这些cookie也可以使用javascript创建。会话ID存储在这样的cookie中。这是因为HTTP是无状态的。每个请求都是服务器的全新要求。为了解决这个问题,可以使用cookie来存储数据。为了防止每一块数据一遍又一遍地来回发送(包括潜在的私有数据),这些数据保存在服务器上,并且只有一个会话ID存储在一个cookie中,以便在下一次请求时识别该数据。 – GolezTrol 2011-02-11 23:54:40

0

Cookies是在服务器端创建的:当服务器响应时,它在http头中包含一个cookie。浏览器会在每次请求时将其传回给服务器。服务器可以在需要时更新cookie。

Browser ------------------------------> Server 
     <---- Set Cookie -------------- 
     --------- Cookie -------------> 
+0

你可以[通过Javascript设置Cookie](http://www.quirksmode.org/js/cookies.html)... – ircmaxell 2011-02-11 22:58:22

0

Cookie附加到HTTP请求和响应的标头。这使得他们可以通过浏览器和服务器访问它们。 cookie中唯一的常量是与其绑定的域。