2016-01-19 142 views
1

我瞭解持久cookie與會話cookie的正常應用。但是,如果您可以指定會話cookie的過期時間,以表現爲持久cookie,反之亦然。除了被用戶模糊處理並且會話存儲在服務器上之外,使用會話cookie還有什麼好處嗎?會話Cookie與持久Cookie

session_set_cookie_params()函數允許您爲會話設置特定的到期時間。您可以在setcookie()函數中設置持久cookie中的時間。

我已經拉起了線程 Cookie VS SessionSession cookies and persistent cookies,並沒有找到我的答案。

+0

_「'session_set_cookie_params()'函數允許您爲會話設置特定的到期時間」_ - 不,它不會。它允許您指定存儲會話ID的cookie應該有效的時間 - 但這與實際的「會話生存期」有所不同。 – CBroe

回答

1

但是,如果您可以指定會話cookie的過期時間爲 的行爲類似於持久cookie,反之亦然。

不正確,會話cookie和持久cookie之間的區別在於是否給出了expires值。根據定義,會話cookie不能具有到期時間。

使用會話cookie除了他們是 從用戶混淆和會話存儲在服務器上是否有任何好處?

類似PHP會話的會話ID可以存儲在會話cookie或持久cookie中,會話cookie可以包含會話ID以外的其他信息。他們都使用「會話」一詞,但是是分開的東西。

如果您希望cookie在用戶關閉瀏覽器時消失,則會話cookie是正確的選擇。網上銀行就是一個很好的例子 - 當您關閉瀏覽器時,驗證您身份的cookie應該被銷燬,以免有人無法潛入您的計算機,重新打開瀏覽器並開始傳輸。曾經有過你的Facebook狀態或類似的東西改變爲惡作劇?

+0

閱讀'session_set_cookie_params()'的文檔並自行測試。除了瀏覽器關閉時,您可以完全指定到期日期。 –

+0

這使得它成爲持有「會話ID」的「持久cookie」,混淆了術語,是吧? – mzulch

+0

我不會稱之爲「永久性cookie」,因爲它存儲在服務器上。 –