1. 程式人生 > >cookies和session

cookies和session

use 加密 站點 ie6 存儲 strong 鏈接 lan 服務

1,簡單說說Cookie是什麽吧,為什麽需要Cookie

Cookie 是一小段文本信息,伴隨著用戶請求在 Web 服務器和瀏覽器之間傳遞。Cookie 包含每次用戶訪問站點時 Web 應用程序都可以讀取的信息。

2,為什麽需要Cookie? 因為HTTP協議是無狀態的,對於一個瀏覽器發出的多次請求,WEB服務器無法區分 是不是來源於同一個瀏覽器。所以,需要額外的數據用於維護會話。 Cookie 正是這樣的一段隨HTTP請求一起被傳遞的額外數據。

1,session 是一個抽象概念,開發者為了實現中斷和繼續等操作,將 user agent 和 server 之間一對一的交互,抽象為“會話”,進而衍生出“會話狀態”,也就是 session 的概念。

2,而 cookie 是一個實際存在的東西,http 協議中定義在 header 中的字段。可以認為是 session 的一種後端無狀態實現。

3,cookie保存在客戶端,session保存在服務器端,Session是在服務端保存的一個數據結構,用來跟蹤用戶的狀態,這個數據可以保存在集群、數據庫、文件中;
Cookie是客戶端保存用戶信息的一種機制,用來記錄用戶的一些信息,也是實現Session的一種方式。

4,第一次創建Session的時候,服務端會在HTTP協議中告訴客戶端,需要在 Cookie 裏面記錄一個Session ID,以後每次請求把這個會話ID發送到服務器,

鏈接:https://www.nowcoder.com/questionTerminal/20d99243797f41db8c9d8674248e69ff
來源:牛客網

優點: 極高的擴展性和可用性

1) 數據持久性

2) 不需要任何服務器資源。 Cookie 存儲在客戶端並在發送後由服務器讀取。

3) 可配置到期規則。 控制 cookie 的生命期,使之不會永遠有效。偷盜者很可能拿到一個過期的 cookie 。

4) 簡單性。 基於文本的輕量結構。

5) 通過良好的編程,控制保存在 cookie 中的 session 對象的大小。

6) 通過加密和安全傳輸技術( SSL ),減少 cookie 被破解的可能性。

7) 只在 cookie 中存放不敏感數據,即使被盜也不會有重大損失。


缺點:

1) Cookie 數量和長度的限制

數量:每個域的 cookie 總數有限。

a) IE6 或更低版本最多 20 個 cookie

b) IE7 和之後的版本最後可以有 50 個 cookie

c) Firefox 最多 50 個 cookie

d) chrome 和 Safari 沒有做硬性限制

長度:每個 cookie 長度不超過 4KB ( 4096B ),否則會被截掉。

2) 潛在的安全風險 。 Cookie 可能被攔截、篡改。如果 cookie 被攔截,就有可能取得所有的 session 信息。

3) 用戶配置為禁用 。有些用戶禁用了瀏覽器或客戶端設備接受 cookie 的能力,因此限制了這一功能。

4) 有些狀態不可能保存在客戶端 。例如,為了防止重復提交表單,我們需要在服務器端保存一個計數器。如果我們把這個計數器保存在客戶端,那麽它起不到任何作用。

cookies和session