由於會話和cookie都用於存儲臨時數據,它們之間有什麼區別?會話和cookie是同一件事嗎?
回答
在每個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
標題。
作爲一個澄清,響應'Set-Cookie'頭中的選項決定*哪個*將來的請求包含'Cookie'頭,無論是後續的所有請求還是其中的某個子集。 – yfeldblum 2010-09-24 13:47:21
這是可以接受的答案。雖然這是關於cookie如何誕生的一個很好的解釋(儘管不完整,因爲cookie也可以由JavaScript設置,因此跳過了「Set-Cookie」頭),但它甚至沒有提到會話! :) – 2010-09-24 18:57:02
這是一個部分答案,但它是整個答案中最大的一部分。關於Cookie和會話之間的差異的混淆通常是由於混淆了cookie的具體含義。解釋餅乾和相關問題通常會被澄清。 – yfeldblum 2010-09-24 19:48:54
Cookie作爲文件系統(持久性cookie)或瀏覽器內存(非持久性cookie)上的小型文本文件存儲在客戶端中,並傳遞到服務器並通過每個請求和響應返回給客戶端。只要到期日還沒有通過,瀏覽器會話間的持久cookie仍然可用。一旦瀏覽器關閉,非持久性cookie將會丟失。
會話存儲在內存中的服務器上。 Cookie經常被用作保存請求之間用戶會話的引用的一種方式,但是如果在客戶端瀏覽器上禁用cookie,這也可以通過查詢字符串參數來完成。
在內存中?? ___ – 2010-09-24 13:00:51
@Alvaro G. Vicario - 記憶中。無論是在通過其Web服務器分配給應用程序的RAM中,還是在通過數據庫會話存儲的存儲內存中,還是在與會話狀態服務器相關的某些其他RAM /隔離存儲中。 – 2010-09-24 13:05:20
顯然,他們可以在內存中 - http://www.cookiecentral.com/faq/#1.1 – JeffO 2010-09-24 13:05:45
Cookies存儲用戶的數據他們的電腦。
會話實現會在服務器(或多個服務器,具體取決於配置)上存儲用戶的臨時數據。
Cookies是存儲在能夠容納特定領域的信息在客戶端上的小文本文件,
一個會話時,無論是內存,數據庫或一個單獨的服務器保持服務器端和鍵控通過會話密鑰,它們是隻意味着堅持一個'會話',因爲cookie可以持續一段時間或無限期地持續,因此可用於多個會話。
Cookie是客戶端,會話是服務器端
會話存儲在服務器端。您可以擁有inproc會話,這些會話將存儲在內存中,也可以將會話存儲在SQL數據庫中。你可以閱讀more here。
Cookie存儲在客戶端的計算機上。這意味着不建議將重要細節存儲在cookie中,因爲客戶可以輕鬆操縱它們。
存儲在會話和cookie中的數據的主要區別在於存儲在會話中的數據存儲在服務器端(用戶不能操作這些數據),而cookie存儲在客戶端。他們可能會被用戶以某種方式操縱。如果你有一個非常敏感的數據 - 然後將它存儲在會話中。但是可以存儲在cookie中的所有其他數據不會使服務器超載。
由於Cookie隨每個請求一起發送(即使對於圖像等,如果您沒有爲它們使用單獨的域或子域名),濫用cookie可能會花費大量額外帶寬。如果會話數據佔用太多空間,導致內存成爲問題,我想知道是否應該將數據填充到數據庫中,而不是想知道是否可以將其卸載到客戶端。 – Brian 2010-09-24 13:39:34
至於五月知識:
如果將該變量設置爲「曲奇」,那麼你的用戶就不必每次都要登錄他們進入你的社區時間英寸
cookie將留在用戶的瀏覽器內進行,直到被用戶刪除。
但是會話被廣泛使用,因爲有你的cookies的機會,如果用戶的瀏覽器安全設置設爲高被阻塞。
如果將該變量設置爲「會議」,那麼用戶活動將使用瀏覽器會話跟蹤,用戶必須登錄每次重新打開瀏覽器時間英寸此外,如果您使用的是「會話」變量,則需要通過將它放在Web根目錄上或通過請求您的Web主機將其設置爲不可瀏覽的目錄來保護「會話」目錄。
的主要區別將餅乾都存儲在硬盤中,而會話不會存儲在您的硬盤。會話基本上就像令牌一樣,它是在驗證時生成的。只要瀏覽器打開,會話就可用。
希望以下鏈接將進一步明確你的疑慮
http://wiki.answers.com/Q/What_is_the_difference_between_session_and_cookies http://www.allinterview.com/showanswers/74177.html
他們是不一樣的東西。會話是存儲單個用戶的瀏覽會話的狀態的概念。
Cookies是實現這一理念,因而「會話cookie」的普遍做法的一個很好的手段。
- 1. 在基於cookie的會話存儲中,會話和Cookie是同一件事
- 2. 在軌道Cookie會話是一樣的cookie或會話?
- 3. 會話和cookie,如果我銷燬會話,cookie會消失嗎? (PHP)
- 4. 會話和cookie在同一個PHP文件中?
- 5. 會話cookie和www
- 6. PHP cookie和會話
- 7. PHP會話和cookie
- 8. 會話cookie和asp.net
- 9. 粘性會話是否與基於Cookie的會話不同?
- 10. 還記得我的cookie,需要一個會話cookie嗎?
- 11. 什麼是無Cookie會話?
- 12. Rails 3會話和cookie如何堅持會話ID Cookie
- 13. PHP會話和cookie問題
- 14. Oauth,Devise和Mongoid會話cookie
- 15. 會話和cookie中expressjs
- 16. PHP會話和cookie破壞
- 17. 會話cookie和HTML形成
- 18. 會話cookie和http頭
- 19. 會話Cookie和IE 8
- 20. 會話,cookie和安全
- 21. 會話與cookie
- 22. JMeter;會話cookie
- 23. Coldfusion會話Cookie
- 24. Android - 會話Cookie
- 25. asp.net你可以混合使用Cookie cookie會話存儲的會話數據嗎?
- 26. 適配器和轉換器是同一件事嗎?
- 27. 在facebook api中'auth_token'和'sig'是同一件事嗎?
- 28. NFC標籤和NFC卡是同一件事嗎?
- 29. Cookie是會話的通用安全實現嗎?
- 30. 會話或Cookie [PHP]
Cookie是否必須是臨時的? – JeffO 2010-09-24 13:07:29
@Jeff:Cookie往往會被刪除。將客戶端數據視爲永久存儲是危險的。 – Brian 2010-09-24 13:40:38