cookies和session
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