標籤:style blog http color 使用 os
Cookie是什麼:cookie是指儲存在使用者本地終端上的資料,同時它是與具體的web頁面或者網站相關的。Cookie資料會自動在web瀏覽器和web伺服器之間傳輸,也就是說HTTP請求發送時,會把儲存在該請求網域名稱下的所有cookie值發送給web伺服器,因此伺服器端指令碼是可以讀、寫儲存在用戶端的cookie的操作。
cookie的有效期間:cookie預設情況下的有效期間是很短暫的,一旦使用者關閉瀏覽器,cookie儲存的資料就會丟失。如果想要延長cookie的有效期間,可以通過設定HTTP頭資訊中的cache-control屬性的max-age值,或者修改HTTP頭資訊中的expires屬性的值來延長有效期間。
cookie的範圍:它是通過文檔源和文檔路徑來確定的。該範圍通過cookie的path和domain屬性也是可配置的。預設情況下,cookie和建立它的web頁面有關,並對該頁面以及和該頁面同目錄或者子目錄的其他頁面可見。有時候,你可能希望讓整個網站都能夠使用cookie的值,而不管是哪個頁面建立它。要滿足這樣的需求可以設定cookie的路徑(設定cookie的path屬性。例如,如果http://www.csh.com/cat/index.html頁面建立了一個cookie,並且利用path屬性將該路徑設定成”/”,那麼該cookie對任何http://www.csh.com這台web伺服器上的頁面都是可見的)。cookie的範圍預設由文檔源限制。但是,有的大型網站想要子域之間能夠互相共用cookie(例如,www.csh.com網域名稱的的伺服器想要讀取mmm.csh.com域下設定的cookie值,這就需要通過設定cookie的domain屬性來達到目的)。
cookie的數目和大小的限制:每個web伺服器(網域名稱)儲存的cookie數不能超過50個,每個cookie儲存的資料不能超過4KB,如果超過了4KB,伺服器會處理不了。
//添加新的cookiefunction addCookie(objName,objValue,objHours){ var str = objName + "=" + escape(objValue); //為0時不設定到期時間,瀏覽器關閉時cookie自動消失 if(objHours > 0){ var date = new Date(); var ms = objHours*3600*1000; date.setTime(date.getTime() + ms); str += "; expires=" + date.toString(); } document.cookie = str;};
//擷取指定名稱的cookie的值function getCookie(objName){ var arrStr = document.cookie.split("; "); for(var i = 0;i < arrStr.length;i ++){ var temp = arrStr[i].split("="); if(temp[0] == objName) return unescape(temp[1]); }};
//為了刪除指定名稱的cookie,可以將其到期時間設定為一個過去的時間function delCookie(name){ var date = new Date(); date.setTime(date.getTime() - 10000); document.cookie = name + "=a; expires=" + date.toString();};