cookie與session區(qū)別及用法

cookie與session 區(qū)別

下面是cookie與session各自的特點,其實通過它們特點的不同就能看出他們的區(qū)別,我就不總結(jié)區(qū)別了,可以將他們的特性進行比較,不同之處就是他們的區(qū)別。

cookie特性

1.cookie是存儲在瀏覽器客戶的一小片數(shù)據(jù);
2.cookie可以同時被前臺與后臺操作;
3.cookie可以跨頁面存?。?br> 4.cookie是不可以跨服務(wù)器訪問的;
5.cookie有限制; 每個瀏覽器存儲的個數(shù)不能超過300個,每個服務(wù)器不能超過20個,數(shù)據(jù)量不能超過4K;
6.cookie是有生命周期的,默認(rèn)與瀏覽器相同,如果進程退出,cookie會被銷毀

session特性
  1. seesion數(shù)據(jù)存儲在服務(wù)器端;
  2. 每一個會話分配一個單獨的session_id;
  3. 該session_id通過cookie傳送到前臺,默認(rèn)的session_id名稱是PHPSESSIONID
  4. 前臺只能看到session的ID,而不能修改session值
  5. 使用session之前需要先開啟會話
  6. session存儲在session數(shù)組$_SESSION
  7. session存儲方式比較安全,但是如果session數(shù)量過多,會導(dǎo)致服務(wù)器性能下降

cookie與session語法

cookie
  1. 前端使用語法:
    // 設(shè)置一個cookie
    document.cookie = "user=ltt; age=18 ;like= h5";
    // 讀取所有的cookie
    str = document.cookie;
//從所有cookie取出一個特定名的cookie值
    start = str.indexOf("num=") + 4;
    end = str.indexOf(";",start);
    // 使用substring獲得值
    var val = str.substring(start,end);

由于cookie是以鍵值對形式存儲的,用每個分號分割每個cookie,如下圖,所以我們從cookie中取出一個特定名的cookie值需要使用上面代碼的js字符串的一些方法。


cookie值.png

我們經(jīng)常會需要設(shè)置一個cookie和取cookie里的值,因此我們可以封裝兩個函數(shù),一個設(shè)置cookie,一個取cookie的值。大家需要用的可以直接拷貝。

// 取cookie值 參數(shù)為cookie你要取得值所對應(yīng)的名稱
function getcookie(name){
                var str = document.cookie;
                start = str.indexOf(name+"=")+ name.length+1;
                end = str.indexOf(";",start);
                end = end == -1 ? str.length:end;
                // 使用substring獲得值
                var val = str.substring(start,end);
                return val;
            }
// 設(shè)置cookie
// 參數(shù)(名稱,名稱對應(yīng)的值,路徑,過期時間)
function setCookie(name,value,path,expires){
                // 設(shè)置一天之后失效
            var current_date = new Date();
            // 將日期設(shè)置為一天之后的日期
            current_date.setDate(current_date.getDate() + 1);
            // 將日期轉(zhuǎn)成GMT對象
            expires_str = current_date.toGMTString();
            // 設(shè)置cookie的過期日期
            document.cookie = name + "=" + value+"; path="+path+"; expires="+expires_str;
        }

2.后臺使用的方法
后臺設(shè)置語法比較簡單,就一句代碼,如下;

// 過期時間是時間戳,比如一天后失效,那就是24*3600秒失效
setcookie("newMember","ltt",time()+24*3600);
session

注意:使用session之前都必須先開啟會話,使用 session_start(); 開啟會話

    session_start();
    $_SESSION['user'] = 'ltt';
    $_SESSION['age'] = 10;  

介紹一個header()函數(shù):輸出自定義http頭文件

if(!empty($_SESSION['user'])){
            // header函數(shù)輸出自定義http頭文件
            // header("Location: url") 指定當(dāng)前頁面跳轉(zhuǎn)到url頁面
            header("Location:index2.html");
        }else{
            header("Location:login.html");
        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容