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