国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

九、會(huì)話控制——cookie、session、token

這篇具有很好參考價(jià)值的文章主要介紹了九、會(huì)話控制——cookie、session、token。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

HTTP是一種無狀態(tài)協(xié)議,它沒有辦法區(qū)分多次的請(qǐng)求是否來自于同一個(gè)客戶端,無法區(qū)分用戶。而產(chǎn)品中又大量存在這樣的需求,所以我們需要通過會(huì)話控制來解決問題。
常見的會(huì)話控制有三種:
(1)cookie
(2)session
(3)token


一、cookie

1.1 cookie 是什么

cookie 是HTTP服務(wù)器發(fā)送到用戶瀏覽器并保存在本地的一小塊數(shù)據(jù)。
cookie 是保存在瀏覽器端的一小塊數(shù)據(jù)
cookie 是按照域名劃分保存的

1.2 cookie 的特點(diǎn)

瀏覽器向服務(wù)器發(fā)送請(qǐng)求時(shí),會(huì)自動(dòng)將當(dāng)前域名下可用的cookie設(shè)置在請(qǐng)求頭中,然后傳遞給服務(wù)器。這個(gè)請(qǐng)求頭的名字也叫‘cookie’,所以將cookie理解為一個(gè)HTTP請(qǐng)求頭也是可以的。

1.3 cookie 的運(yùn)行流程

填寫賬號(hào)和密碼校驗(yàn)身份,校驗(yàn)通過后下發(fā)cookie
九、會(huì)話控制——cookie、session、token
有了cookie之后,后續(xù)向服務(wù)器發(fā)送請(qǐng)求時(shí),會(huì)自動(dòng)攜帶cookie
九、會(huì)話控制——cookie、session、token

1.4 express 框架中設(shè)置cookie

// 導(dǎo)入express
const express=require('express');

// 創(chuàng)建應(yīng)用對(duì)象
const app =express();

// 創(chuàng)建路由規(guī)則
app.get('/set-cookie',(req,res)=>{
    // res.cookie('name','zhangsan'); // 會(huì)在瀏覽器關(guān)閉的時(shí)候銷毀
    res.cookie('name','list',{maxAge:60*1000}) // max 最大 age 年齡
    res.send('home');
});

// 啟動(dòng)服務(wù)
app.listen(3000);

1.5 express 框架中刪除cookie

// 導(dǎo)入express
const express=require('express');

// 創(chuàng)建應(yīng)用對(duì)象
const app =express();

// 創(chuàng)建路由規(guī)則
app.get('/set-cookie',(req,res)=>{
    // res.cookie('name','zhangsan'); // 會(huì)在瀏覽器關(guān)閉的時(shí)候銷毀
    res.cookie('name','list',{maxAge:60*1000}) // max 最大 age 年齡
    res.cookie('theme','blue');
    res.send('home');
});

// 刪除cookie
app.get('/remove-cookie',(req,res)=>{
    // 調(diào)用方法
    res.clearCookie('name');
    res.send('刪除成功');
})

// 啟動(dòng)服務(wù)
app.listen(3000);

1.6 express 框架中獲取cookie

使用cookie-parser

// 導(dǎo)入express
const express=require('express');
// 導(dǎo)入包
const cookieParser=require('cookie-parser')

// 創(chuàng)建應(yīng)用對(duì)象
const app =express();
app.use(cookieParser());

// 創(chuàng)建路由規(guī)則
app.get('/set-cookie',(req,res)=>{
    // res.cookie('name','zhangsan'); // 會(huì)在瀏覽器關(guān)閉的時(shí)候銷毀
    res.cookie('name','list',{maxAge:60*1000}) // max 最大 age 年齡
    res.cookie('theme','blue');
    res.send('home');
});

// 獲取cookie
app.get('/get-cookie',(req,res)=>{
    // 獲取cookie
    console.log(req.cookies);
    res.send('獲取cookie');
})

// 啟動(dòng)服務(wù)
app.listen(3000);

二、session

2.1 session 是什么

session 是保存在服務(wù)器端的一塊兒數(shù)據(jù),保存當(dāng)前訪問用戶的相關(guān)信息。

2.2 session 的作用

實(shí)現(xiàn)會(huì)話控制,可以識(shí)別用戶的身份,快速獲取當(dāng)前用戶的相關(guān)信息。

2.3 session 的運(yùn)行流程

瀏覽器端填寫賬號(hào)和密碼傳給服務(wù)器校驗(yàn)身份,服務(wù)器校驗(yàn)通過后創(chuàng)建session信息,然后將session_id的值通過響應(yīng)頭返回給瀏覽器。瀏覽器有了cookie,下次發(fā)送請(qǐng)求時(shí)會(huì)自動(dòng)攜帶cookie,服務(wù)器通過cookie中的session_id的值確定用戶的身份。

2.4 session 和 cookie 的區(qū)別

(1)存在的位置
· cookie:瀏覽器端
· session:服務(wù)端

(2)安全性
· cookie是以明文的方式存放在客戶端的,安全性相對(duì)較低
· session存放于服務(wù)器中,所以安全性相對(duì)較好

(3)網(wǎng)絡(luò)傳輸質(zhì)量
· cookie設(shè)置內(nèi)容過多會(huì)增大報(bào)文體積,會(huì)影響傳輸效率
· session數(shù)據(jù)存儲(chǔ)在服務(wù)器,只是通過cookie傳遞id,所以不影響傳輸效率

(4)存儲(chǔ)限制
· 瀏覽器限制單個(gè)cookie保存的數(shù)據(jù)不能超過4k,且單個(gè)域名下的存儲(chǔ)數(shù)量也有限制
· session 數(shù)據(jù)存儲(chǔ)在服務(wù)器中,所以沒有這些限制

三、token

3.1 token 是什么

token是服務(wù)端生成并返回給HTTP客戶端的一串加密字符串,token中保存著用戶信息

3.2 token 的作用

實(shí)現(xiàn)會(huì)話控制,可以識(shí)別用戶的身份,主要用于移動(dòng)端APP

3.3 token 的工作流程

填寫賬號(hào)和密碼校驗(yàn)身份,校驗(yàn)通過后響應(yīng)token,token一般是在響應(yīng)體中返回給客戶端的
九、會(huì)話控制——cookie、session、token
后續(xù)發(fā)送請(qǐng)求時(shí),需要手動(dòng)將token添加在請(qǐng)求報(bào)文中,一般是放在請(qǐng)求頭中,cookie為自動(dòng)攜帶
九、會(huì)話控制——cookie、session、token

3.4 token 的特點(diǎn)

(1)服務(wù)器端壓力更小
--------數(shù)據(jù)存儲(chǔ)在客戶端

(2)相對(duì)更安全
--------數(shù)據(jù)加密
--------可以避免CSRF(跨站請(qǐng)求偽造)

(3)擴(kuò)展性更強(qiáng)
--------服務(wù)間可以共享
--------增加服務(wù)節(jié)點(diǎn)更簡單

3.5 JWT

JWT(JSON Web Token)是目前最流行的跨域認(rèn)證解決方案,可用于基于token的身份驗(yàn)證
JWT使token的生成與校驗(yàn)更規(guī)范
我們可以使用JWT包來操作token,使用前先安裝包:npm i jsonwebtoken文章來源地址http://www.zghlxwxcb.cn/news/detail-500704.html

// 導(dǎo)入 jwt
const jwt=require('jsonwebtoken')

// 1. 創(chuàng)建(生成)token
// let token = jwt.sign(用戶數(shù)據(jù),加密字符串,配置對(duì)象);
let token=jwt.sign({
    username:'zhangsan'
},'aaaaaa',{
    expiresIn:60, // 單位是秒
})
console.log(token)

let t='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InpoYW5nc2FuIiwiaWF0IjoxNjg2Nzk1ODA5LCJleHAiOjE2ODY3OTU4Njl9.KRZxCJFb9ry5vVL2w-n6tvqaG8JQrPqp8Ej0BwT6myM'

// 校驗(yàn) token
jwt.verify(t,'aaaaaa',(err,data)=>{
    if(err){
        console.log('校驗(yàn)失敗');
        return
    }
    console.log(data);
})

到了這里,關(guān)于九、會(huì)話控制——cookie、session、token的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • web學(xué)習(xí)--Cookie與Session會(huì)話技術(shù)

    1.概念:客戶端會(huì)話技術(shù),將數(shù)據(jù)保存在客戶端 使用步驟: 1,創(chuàng)建Cookie對(duì)象,綁定數(shù)據(jù) 2.發(fā)送Cookie對(duì)象 3.獲取Cookie,拿到數(shù)據(jù) WebServlet(\\\"/Demo1\\\") public class CookidDemo1 extends HttpServlet { ? ? @Override ? ? protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException

    2024年02月13日
    瀏覽(22)
  • 會(huì)話跟蹤技術(shù)學(xué)習(xí)筆記(Cookie+Session)+ HTTP學(xué)習(xí)筆記

    會(huì)話跟蹤技術(shù)學(xué)習(xí)筆記(Cookie+Session)+ HTTP學(xué)習(xí)筆記

    1.1 Cookie 1. Cookie:是一種客戶端會(huì)話技術(shù),數(shù)據(jù)會(huì)被保存在客戶端,Cookie會(huì)攜帶數(shù)據(jù)訪問服務(wù)器,用以完成一次會(huì)話內(nèi)多次請(qǐng)求間的數(shù)據(jù)共享 2. 過程:瀏覽器(客戶端)先向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端會(huì)發(fā)送一個(gè)Cookie給客戶端,在此后同一次會(huì)話中,每次客戶端都會(huì)將Cookie發(fā)送

    2024年02月10日
    瀏覽(26)
  • Servlet【 ServletAPI中的會(huì)話管理Cookie與Session】

    Servlet【 ServletAPI中的會(huì)話管理Cookie與Session】

    HTTP 協(xié)議自身是屬于 “無狀態(tài)” 協(xié)議. “無狀態(tài)” 的含義指的是: 默認(rèn)情況下 HTTP 協(xié)議的客戶端和服務(wù)器之間的這次通信, 和下次通信之間沒有直接的聯(lián)系.但是實(shí)際開發(fā)中, 我們很多時(shí)候是需要知道請(qǐng)求之間的關(guān)聯(lián)關(guān)系的. 例如登陸網(wǎng)站成功后, 第二次訪問的時(shí)候服務(wù)器就能知

    2024年02月09日
    瀏覽(60)
  • 如何在個(gè)人web項(xiàng)目中使用會(huì)話技術(shù)(cookie&session)?

    如何在個(gè)人web項(xiàng)目中使用會(huì)話技術(shù)(cookie&session)?

    編譯軟件:IntelliJ IDEA 2019.2.4 x64 操作系統(tǒng):win10 x64 位 家庭版 服務(wù)器軟件:apache-tomcat-8.5.27 翻開百度百科關(guān)于“ 會(huì)話 ”的詞條,它是這樣描述:“ 在計(jì)算機(jī)術(shù)語中,會(huì)話是指一個(gè)終端用戶與交互系統(tǒng)進(jìn)行通訊的過程,比如從輸入賬戶密碼進(jìn)入操作系統(tǒng)到退出操作系統(tǒng)就是一

    2023年04月22日
    瀏覽(32)
  • 如何讓你的會(huì)話更安全,淺析Session與Cookie

    如何讓你的會(huì)話更安全,淺析Session與Cookie

    ????????在我們面試的時(shí)候,面試官問及 XSS 漏洞的時(shí)候,我們常常會(huì)說比如劫持 Cookie,問及防御方法的時(shí)候,又常常會(huì)說設(shè)置 httponly ,本篇文章將從代碼層面簡單的普及 Session 和 Cookie 的生成過程,及防御的方法,希望看到這篇文章后,下一次遇到面試官的時(shí)候,你能夠

    2024年02月22日
    瀏覽(21)
  • 從Cookie到Session: Servlet API中的會(huì)話管理詳解

    從Cookie到Session: Servlet API中的會(huì)話管理詳解

    首先, 在學(xué)習(xí)過 HTTP 協(xié)議的基礎(chǔ)上, 我們需要知道 Cookie 是 HTTP 請(qǐng)求報(bào)頭中的一個(gè)段, 本質(zhì)上是瀏覽器在本地存儲(chǔ)數(shù)據(jù)的一種機(jī)制, 要清楚 Cookie 是從哪里來, 要到哪里去. Cookie 是來自于服務(wù)器的, 通過響應(yīng)報(bào)文中的 Set-Cookie 字段將數(shù)據(jù)返回保存在瀏覽器本地的; 后續(xù)當(dāng)瀏覽

    2024年02月08日
    瀏覽(22)
  • 使用Session和cookie會(huì)話對(duì)象實(shí)現(xiàn)簡單購物車功能(超詳細(xì))

    使用Session和cookie會(huì)話對(duì)象實(shí)現(xiàn)簡單購物車功能(超詳細(xì))

    1.新建Dynamic Web project,新建過程如下; 2.在src目錄下新建兩個(gè)包,一個(gè)命名為entity,一個(gè)命名為servlet,新建過程如下; 3.在entity目錄下新建兩個(gè)實(shí)體類,一個(gè)名為Cake,一個(gè)名為CakeDB,新建過程如下: 4.在servlet目錄下新建三個(gè)servlet,命名分別為ListCakeServlet、PurchaseServlet和CartSe

    2023年04月17日
    瀏覽(23)
  • cookie+session和token

    總結(jié)說在前面: session:起源于服務(wù)端,保存在服務(wù)端(服務(wù)器或者數(shù)據(jù)庫),通過cookie傳遞給用戶,用戶每一次發(fā)送HTTP請(qǐng)求的時(shí)候,通過驗(yàn)證cookie中的session-id來驗(yàn)證用戶身份。 jwt(json web token):起源于服務(wù)端,保存在瀏覽器(cookie或者storage),和session一樣,用戶每一次發(fā)

    2024年02月19日
    瀏覽(22)
  • cookie,session和token詳解

    cookie,session和token詳解

    目前網(wǎng)絡(luò)上進(jìn)行用戶驗(yàn)證的方法主要有三種:cookie,session,token,他們之間存在相似也有各自的優(yōu)缺點(diǎn),本文將著重強(qiáng)調(diào)。 cookie是瀏覽器存儲(chǔ)在本地的文件,主要用于存儲(chǔ)服務(wù)器對(duì)用戶進(jìn)行的標(biāo)記,大小有限一般只為4kb,用戶在第一次進(jìn)行服務(wù)器請(qǐng)求時(shí),服務(wù)器會(huì)生成對(duì)應(yīng)的

    2024年02月13日
    瀏覽(30)
  • cookie、session、token的區(qū)別

    HTTP無狀態(tài) 當(dāng)?shù)卿浺粋€(gè)大部分網(wǎng)站的時(shí)候,第一次登錄之后,之后的很長一段時(shí)間當(dāng)我們再次訪問網(wǎng)站的時(shí)候都不需要我們再次登錄了,這個(gè)是怎么回事呢? 我們都知道http是無狀態(tài)的,什么是無狀態(tài):關(guān)閉網(wǎng)頁,再次訪問服務(wù)器,服務(wù)器是不能知道是你在訪問。所以就是靠接

    2024年02月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包