2011-02-11 52 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中唯一的常量是與其綁定的域。