深刻淺出,解析cookie與session

1、session和cookie的特徵jquery


不少人認爲,session是服務端的,cookie是客戶端的。其實呢,session和cookie都是服務器產生的,都是鍵值對應的。
**  session是保存在服務器的,服務器會生成對應的session文件,cookie是返回給客戶端的,而後客戶端在存儲相關文件。**
    session在服務器的入口是ID,而後服務器查出對應的的值,經過相似cookie的形式,返回給客戶端(至關於買電影票)。客戶端(瀏覽器),會在發送請求的時候,自動將本地存活的cookie封裝在信息頭中發送給服務器(至關於,看電影驗票)。
    **session和cookie都是有生命週期的。**
    cookie的生命週期受到:cookie自身生命週期以及客戶端是否保留cookie文件的影響(至關於,電影票沒看確丟了)。
    session的生命週期受到:session自身的存活週期以及客戶端是否關閉的影響。
    **session和cookie都是有做用域的。**

2、cookie和session的區別與使用瀏覽器


cookie:


  • 一、不一樣的瀏覽器存儲cookie的位置不同,也不能通用;
  • 二、cookie存儲是以域名的形式進行區分的;
  • 三、cookie的數據能夠設置名字;
  • 四、一個域名下存放cookie的個數是有限的,不一樣的瀏覽器存放的個數也是不一樣的;
  • 五、每一個cookie存放的文件內容大小也是有限制的,不一樣瀏覽器存放的大小也是不一樣的;
    Jquery操做cookie:
    1.添加一個"會話cookie"
    $.cookie('the_cookie', 'the_value');
    這裏沒有指明 cookie有效時間,所建立的cookie有效期默認到用戶關閉瀏覽器爲止,因此被稱爲 「會話cookie(session cookie)」。
    2.建立一個cookie並設置有效時間爲 7天
    $.cookie('the_cookie', 'the_value', { expires: 7 });
    這裏指明瞭cookie有效時間,所建立的cookie被稱爲「持久 cookie (persistent cookie)」。注意單位是:天;
    3.建立一個cookie並設置 cookie的有效路徑
    $.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
    在默認狀況下,只有設置 cookie的網頁才能讀取該 cookie。若是想讓一個頁面讀取另外一個頁面設置的cookie,必須設置cookie的路徑。cookie的路徑用於設置可以讀取 cookie的頂級目錄。將這個路徑設置爲網站的根目錄,可讓全部網頁都能互相讀取 cookie (通常不要這樣設置,防止出現衝突)。
    4.讀取cookie
    $.cookie('the_cookie');
    5.刪除cookie
    $.cookie('the_cookie', null);
    cookie是服務器返回給客戶端,並保存在客戶端的。所以存在暴利破解的可能性。

session


原理上,cookie與session,是相同的。一樣的,咱們用Jquery操做session。使用 jquery.session.js操做session:
使用以前須要引入,Jquery.js與 jquery.session.js哦,咱們將使用sessionStorage對象,它相似與localStorage對象,只是sessionStorage是用來儲存session數據的。當用戶關閉瀏覽器這個數據會被清除掉。
1.添加數據
$.session.set('key', 'value')
2.刪除數據
$.session.remove('key');
3.獲取數據
$.session.get('key');
4.清除數據
$.session.clear();
session相對cookie更加安全一點,由於用戶只是拿到了一個session ID來讀取服務保存的配置文件,而讀取的邏輯實現狀態等是沒有辦法垂手可得破解,這種服務器的驗證機制的。安全

筆者綜述:當咱們遇到一些全局變量,狀態值之類的。在一次請求,或者路徑跳轉等的時候,能夠一步步的存儲獲取。可是當咱們,跨請求,跨路徑在想獲取這些參數的時候怎麼辦呢。天然而然就會想到:要是有一個配置文件就行了,我直接讀取配置文件裏面的內容,遇到新值我直接存儲或者修改配置文件就行了。那麼cookie和session就是了。只不過,cookie的配置文件在本地,session的配置文件在服務器,都是會被清除掉的臨時文件。--HoYL服務器

相關文章
相關標籤/搜索