什么是cookie,作用是什么? 以及session的理解


cookie:

  1.定義:什么是cookie?   cookie就是存儲在客戶端的一小段文本

  2.cookie是一門客戶端的技術,因為cookie是存儲在客戶端瀏覽器中的

  3.cookie的作用:是為了實現客戶端與服務器之間狀態的保持

  4.cookie 技術不安全,不要使用cookie保存敏感信息 

  5.cookie默認 在瀏覽器關閉之后,就立即實現失效.如果想指定cookie的過期時間,需要通過使用expires屬性實現.在服務器響應返回響應頭時

    寫入cookie的過期時間. 即響應頭設置 set-cookie:[expires=new.Date(Date.now() +10 *1000)]   10S后過期

原理:由於http協議是無狀態的.傳統服務器只能被動響應請求.當服務器獲取到請求,並為了能夠區分每一個客戶端,需要客戶端發送請求時發送一個標識符(cookie),

也因此為了提供這個標識符,產生了cookie技術.我們在請求頭(Request Headers)中添加了標識符(cookie). 每次發送請求,都會把這個cookie隨同其它報文一起發送給服務器.

服務器根據報文中cookie,進行區分客戶端瀏覽器.

  如何設置表示符:

    在node中可以在writeHeaer的時候通過Set-Cookie來將表示通過響應報文發送給客戶端 , 或客戶端通過插件 jquery.cookie

session:

    由於http無狀態,服務器在每次連接中持續保存客戶端的私有數據,此時需要結合cookie技術,通過session會話機制,在服務器端保存每一個http請求的私有數據

原理:

    在服務器內存開辟一塊內存空間,專門存放每個客戶端私有數據,每個客戶端根據cookie中保存的私有sessionId,可以獲取到獨屬於自己的session數據.   

session在node中使用:

    

  1. 安裝session模塊
    npm install express-session -S
    
  2. 導入session模塊
    var session = require('express-session')
    
  3. 在express中使用session中間件:
    // 啟用 session 中間件
    app.use(session({
    secret: 'keyboard cat', // 相當於是一個加密密鑰,值可以是任意字符串
    resave: false, // 強制session保存到session store中
    saveUninitialized: false // 強制沒有“初始化”的session保存到storage中
    }))
    
  4. 將私有數據保存到當前請求的session會話中:
    // 將登錄的用戶保存到session中
    req.session.user = result.dataValues;
    // 設置是否登錄為true
    req.session.islogin = true;
    
  5. 通過destroy()方法清空session數據:
    req.session.destroy(function(err){
    if(err) throw err;
    console.log('用戶退出成功!');
    // 實現服務器端的跳轉,這個對比於 客戶端跳轉
    res.redirect('/');
    });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM