JavaScript之cookie的生死之道
cookie其實就是網站放在用戶機器上的一小塊信息,cookie對于用戶來說是唯一的,網站可判斷用戶上次訪問網站的時間,以及他訪問了哪些頁面,可用于在某個網站跟蹤你訪問的頁面,但無法用它來獲取個人信息。cookie是***個JavaScript可以利用的客戶端—服務器端之間的交互手段。瀏覽器向服務器發送請求時,為這個服務器存儲的cookie會與其他信息一起發送到服務器。
如果一個cookie不設置expires過期時間的話,這個cookie會在同源瀏覽器的***一個窗口關閉之后失效。不設置過期時間的cookie也只能被同源瀏覽器、同域網頁所調用。如果想同域但非同源的網頁也能調用這個cookie的話,必須設置過期時間。
cookie是在瀏覽器端同域(同大域)同源或非同源瀏覽器窗口之間的一些信息交換中轉站。比如象CSDN里的WEBIM,每個頁面都想知道目前都有誰給我發送了留言,通過cookie的中轉,就可以做到即使同時打開100個窗口,也不會同時100個請求并發,只要其中的一個頁面去請求就夠 了,另外的頁面只需要實時監控這個cookie即可。
cookie的所在域domain如果設置為大域,比如:csdn.net,那么所有這個大域下的子域比如http://bbs.csdn.net/、http://blog.csdn.net/ 都可以直接訪問到這個cookie設置。這個特性被很多大型網站用做passport登錄,保證一處登錄,所以子域都是登錄狀態。
cookie可以設置path路徑,可以指定cookie的起效路徑。
少用cookie,因為在每個HTTP請求都會帶上cookie信息在網絡間傳輸,會在無聲無息中大量消耗寶貴的帶寬,因為每請求一張圖片、每一個AJAX請求都會帶上這個cookie信息,大家可以用HTTP請求的抓包工具看到。少用cookie,特別要慎用大域cookie。若只是作為本地數據中轉中心可以使用userdata或者sessionStorage。
希望通過本文對于COOKIE的介紹,能給帶來幫助。
【編輯推薦】