什麼是Cookie?
- Cookie本意是指就著牛奶一起吃的點心,在 Inernet上,Cookie就是小量資訊。
- Cookie是由web伺服器建立並儲存在使用者瀏覽器上的小文字檔案,它以
key/value
的形式儲存使用者相關資訊,這些資料通常會經過加密處理。當使用者連線到伺服器,web站點可以訪問Cookie資訊
Cookie有什麼作用
- Cookies的兩個主要用途:儲存使用者資訊和個性化定製。
- Cookies最典型的應用是判定註冊使用者是否已經登入網站。
- 另一個重要應用場景是“購物車”之類處理,使用者可能在一段時間內在同一網站不同頁面選擇不同商品,這些資訊都會被寫入cookie以便最後結賬使用。
Cookie的使用
-
客戶端使用者如果設定禁止 Cookie, 則 Cookie不能建立。 並且在客戶端 , 一個 瀏覽器能建立的Cookie數量最多為 300個 , 並且每個不能超過 4KB,每個 Web 站點能設定的 Cookie 總數不能超過 20個。
-
Cookie在生成時就會被指定一個Expire值,這就是Cookie的生存週期,在這個週期內Cookie有效,超出週期Cookie就會被清除。有些頁面將Cookie的生存週期設定為“0”或負值,這樣在關閉瀏覽器時,就馬上清除Cookie,不會記錄使用者資訊,更加安全。
-
如果在一臺計算機中安裝多個瀏覽器,每個瀏覽器都會在各自獨立的空間存放cookie。因為cookie中不但可以確認使用者,還能包含計算機和瀏覽器的資訊,所以一個使用者用不同的瀏覽器登入或者用不同的計算機登入,都會得到不同的cookie資訊,另一方面,對於在同一臺計算機上使用同一瀏覽器的多使用者群,cookie不會區分他們的身份,除非他們使用不同的使用者名稱登入。
-
Cookie是利用了網頁程式碼中的HTTP頭資訊進行傳遞的,瀏覽器的每一次網頁請求,都可以伴隨Cookie傳遞,例如,瀏覽器的開啟或重新整理網頁操作。伺服器將Cookie新增到網頁的HTTP頭資訊中,伴隨網頁資料傳回到你的瀏覽器,瀏覽器會根據你電腦中的Cookie設定選擇是否儲存這些資料。如果瀏覽器不允許Cookie儲存,則關掉瀏覽器後,這些資料就消失。Cookie在電腦上儲存的時間是不一樣的,這些都是由伺服器的設定不同決定的。Cookie有一個Expires(有效期)屬性,這個屬性決定了Cookie的儲存時間,伺服器可以通過設定Expires欄位的數值,來改變Cookie的儲存時間。如果不設定該屬性,那麼Cookie只在瀏覽網頁期間有效,關閉瀏覽器,這些Cookie自動消失,絕大多數網站屬於這種情況。通常情況下,Cookie包含Server、Expires、Name、value這幾個欄位,其中對伺服器有用的只是Name和value欄位,Expires等欄位的內容僅僅是為了告訴瀏覽器如何處理這些Cookies。
談談Cookie的弊端
- Cookie`數量和長度的限制。每個domain最多隻能有20條cookie,每個cookie長度不能超過4KB,否則會被截掉。在當今新的瀏覽器和客戶端裝置版本中,支援 8192 位元組的 Cookie 大小已愈發常見。
- 使用者配置為禁用。有些使用者禁用了瀏覽器或客戶端裝置接收 Cookie 的能力,因此限制了這一功能
- 由於在HTTP請求中的cookie是明文傳遞的,潛在的安全風險,Cookie 可能會被篡改
- 有些狀態不可能儲存在客戶端
- cookie會被附加在每個HTTP請求中,所以無形中增加了流量
- cookie一般不可跨域使用
- 沒有封裝好的setCookie和getCookie方法,需要開發者自省封裝