您好,登錄后才能下訂單哦!
一、session和cookie的特征
很多人認為,session是服務端的,cookie是客戶端的。其實呢,session和cookie都是服務器產(chǎn)生的,都是鍵值對應的。
** session是保存在服務器的,服務器會生成對應的session文件,cookie是返回給客戶端的,然后客戶端在存儲相關文件。**
session在服務器的入口是ID,然后服務器查出對應的的值,通過類似cookie的形式,返回給客戶端(相當于買電影票)。客戶端(瀏覽器),會在發(fā)送請求的時候,自動將本地存活的cookie封裝在信息頭中發(fā)送給服務器(相當于,看電影驗票)。
**session和cookie都是有生命周期的。**
cookie的生命周期受到:cookie自身生命周期以及客戶端是否保留cookie文件的影響(相當于,電影票沒看確丟了)。
session的生命周期受到:session自身的存活周期以及客戶端是否關閉的影響。
**session和cookie都是有作用域的。**
二、cookie和session的區(qū)別與使用
$.cookie('the_cookie', 'the_value');
$.cookie('the_cookie', 'the_value', { expires: 7 });
$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
$.cookie('the_cookie');
$.cookie('the_cookie', null);
原理上,cookie與session,是相同的。同樣的,我們用Jquery操作session。使用 jquery.session.js操作session:
使用之前需要引入,Jquery.js與 jquery.session.js哦,我們將使用sessionStorage對象,它類似與localStorage對象,只是sessionStorage是用來儲存session數(shù)據(jù)的。當用戶關閉瀏覽器這個數(shù)據(jù)會被清除掉。
1.添加數(shù)據(jù)
$.session.set('key', 'value')
2.刪除數(shù)據(jù)
$.session.remove('key');
3.獲取數(shù)據(jù)
$.session.get('key');
4.清除數(shù)據(jù)
$.session.clear();
session相對cookie更加安全一點,因為用戶只是拿到了一個session ID來讀取服務保存的配置文件,而讀取的邏輯實現(xiàn)狀態(tài)等是沒有辦法輕而易舉破解,這種服務器的驗證機制的。
筆者綜述:當我們遇到一些全局變量,狀態(tài)值之類的。在一次請求,或者路徑跳轉(zhuǎn)等的時候,可以一步步的存儲獲取。但是當我們,跨請求,跨路徑在想獲取這些參數(shù)的時候怎么辦呢。自然而然就會想到:要是有一個配置文件就好了,我直接讀取配置文件里面的內(nèi)容,遇到新值我直接存儲或者修改配置文件就好了。那么cookie和session就是了。只不過,cookie的配置文件在本地,session的配置文件在服務器,都是會被清除掉的臨時文件。--HoYL
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。