Cookie的路徑和設定Cookie的缺陷的詳細講解
Cookie的domain
Cookie的path是在同一主機中指定共享Cookie,如果主機不同那麼就一定不能共享Cookie,無論path是什麼。
如果希望不同的二級域名中可以共享Cookie,那麼就要設定Cookie的domain了。
例如:music.baidu.com、map.baidu.com、tieba.baidu.com,它們的域名不同,但百度希望它們之間可以共享Cookie,那麼就要設定domain了。
1). 設定Cookie的path為“/”,例如:cookie.setPath("/");表示在整個baidun.com中都是能夠傳遞。
2). 設定Cookie的domain,例如:cookie.setDomain(".baidu.com"),其中domain中沒有指定域名字首!
在music.baidu.com主機中的某個專案中儲存了Cookie
在map.baidu.com主機中某個專案中獲取Cookie
當然這需要配置兩個虛擬主機才行。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Servlet1(“/cookie/login”) Servlet(“/abc/list”)
此時Servlet 中Cookie是不會發送請求給Servlet2 的因為路徑不同。
此時的Servlet只能把Cookie傳遞給/Cookie/打頭的資源。
Cookie缺陷問題:
1:不安全,所有的資訊都是記錄在電腦中瀏覽器中的資訊。Cookie資訊。
2:在儲存中文的時候比較麻煩。(先編碼在解碼)
3:一個Cookie只能儲存一個數據。如果是多個數據則需要N個Cookie資料。主要的原因是因為value的值是String型別。
4:一個站點對Cookie的數量是有限制的。
Cookie大小限制在4KB之內;
* 一臺伺服器在一個客戶端最多儲存20個Cookie;
* 一個瀏覽器最多可以儲存300個Cookie;
5:再設計上就有問題:考慮生活中問題:
Cookie 是瀏覽器和伺服器之間和資料互動的憑證。在生活中我們是把識別資料儲存到服務端。
解決方法:session(當然也不是百分之百的好,也是缺陷的地方。)