瀏覽器存儲:cookie


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,服務器會處理不了。

 

//添加新的cookie
function 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();
};


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM