一、session
session的中文翻譯是“會話”槐雾,當用戶打開某個web應用時夭委,便與web服務器產(chǎn)生一次session。
服務器使用session把用戶的信息臨時保存在了服務器上募强,用戶離開網(wǎng)站后session會被銷毀株灸。這種用戶信息存儲方式相對cookie來說更安全,
可是session有一個缺陷:如果web服務器做了負載均衡擎值,那么下一個操作請求到了另一臺服務器的時候session會丟失慌烧。
- 下面是php(phalcon框架)的例子
- 以數(shù)組形式保存用戶登錄的信息(id、name鸠儿、avatar)
$this->session->set('userInfo', array(
'id' => $admin->id,
'name' => $admin->name,
'avatar' => $admin->avatar)
);
- session是全局的屹蚊,在一個地方保存了,其他地方就可以用
if ($this->session->has("userInfo")) {
$userInfo = $this->session->get('userInfo');
return $userInfo;
}
二进每、cookie
cookie是保存在本地終端的數(shù)據(jù)汹粤。cookie由服務器生成,發(fā)送給瀏覽器田晚,瀏覽器把cookie以kv形式保存到某個目錄下的文本文件內(nèi)嘱兼,
下一次請求同一網(wǎng)站時會把該cookie發(fā)送給服務器。由于cookie是存在客戶端上的贤徒,所以瀏覽器加入了一些限制確保cookie不會被惡意使用芹壕,
同時不會占據(jù)太多磁盤空間胃惜,所以每個域的cookie數(shù)量是有限的。
cookie的組成有:名稱(key)哪雕、值(value)、有效域(domain)鲫趁、路徑(域的路徑斯嚎,一般設置為全局:"\")、失效時間挨厚、安全標志(指定后堡僻,
cookie只有在使用SSL連接時才發(fā)送到服務器(https))。
document.cookie = "id="+result.data['id']+"; path=/";
document.cookie = "name="+result.data['name']+"; path=/";
document.cookie = "avatar="+result.data['avatar']+"; path=/";
var cookie = document.cookie;
var cookieArr = cookie.split(";");
var user_info = {};
for(var i = 0; i < cookieArr.length; i++) {
user_info[cookieArr[i].split("=")[0]] = cookieArr[i].split("=")[1];
}
$('#user_name').text(user_info[' name']);
$('#user_avatar').attr("src", user_info[' avatar']);
$('#user_id').val(user_info[' id']);
三疫剃、token
token的意思是“令牌”钉疫,是用戶身份的驗證方式,最簡單的token組成:uid(用戶唯一的身份標識)巢价、time(當前時間的時間戳)牲阁、
sign(簽名,由token的前幾位+鹽以哈希算法壓縮成一定長的十六進制字符串壤躲,可以防止惡意第三方拼接token請求服務器)城菊。還可以把不變的參數(shù)也放進token,
避免多次查庫
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者