成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Session 和 Cookies 有什么區(qū)別?

網(wǎng)絡(luò) 通信技術(shù)
Session 是一個(gè) 用戶憑證(sesson_id) 映射到 用戶id 的一個(gè)映射表,用于通過用戶憑證識(shí)別用戶。而 Cookies 則是 HTTP 協(xié)議中可以用來保存狀態(tài)的驚喜小甜點(diǎn),它能夠?qū)⒎?wù)器返回的一些數(shù)據(jù)保存下來,在下一次請求中攜帶上。

大家好,我是前端西瓜哥。

很多初學(xué)者會(huì)分不清 Session 和 Cookies 的區(qū)別,今天西瓜哥我就帶大家來掌握這兩個(gè)概念。

登錄網(wǎng)站的表象

你進(jìn)入網(wǎng)站的登錄頁面,輸入用戶名和密碼,點(diǎn)擊 “登錄” 按鈕,然后你就登錄成功了,然后就可以進(jìn)行需要登錄才能進(jìn)行的操作,比如給西瓜哥的文章點(diǎn)贊。

之后,你再打開這個(gè)網(wǎng)站,就不用再輸入用戶名和密碼了。

?其實(shí)是因?yàn)槟闶褂昧艘粋€(gè) “看不見” 的 用戶憑證,它被緩存在當(dāng)前瀏覽器中,在它過期前你依舊是登錄狀態(tài)。

而當(dāng)你打開另一個(gè)瀏覽器時(shí),或者用另一臺(tái)電腦打開時(shí),你還是要走一遍登錄流程,才能拿到用戶憑證實(shí)現(xiàn)登錄狀態(tài)。

上面行為的底層到底發(fā)生了什么呢??

Session

當(dāng)用戶將用戶名和密碼發(fā)給服務(wù)端后,服務(wù)端會(huì)從用戶表中,驗(yàn)證用戶名是否匹配密碼。

user 用戶表大概如下:

user_id     user_name       password---------------------------------------  1          前端西瓜哥        kksk456  2          watermelon      ou114514

如果用戶名和密碼正確,就會(huì)生成一個(gè)隨機(jī)的 id 作為用戶的憑證,存放到一個(gè)映射表里,并讓這個(gè)隨機(jī) id 映射到對(duì)應(yīng)的用戶 id。

我們可以將它存到數(shù)據(jù)庫中:

session_id     user_id-----------------------kdj1231j          2

你也可以存到內(nèi)存、redis 之類可以快速訪問的存儲(chǔ)介質(zhì)中。

此外,session_id 在映射表中也不能有相同的值,否則會(huì)導(dǎo)致張三登錄拿到了李四的號(hào)。

這樣一個(gè)保存用戶憑證(session_id)到用戶 id 的映射存儲(chǔ),就是所謂的 Session 了。

Session 的意思是會(huì)話的意思,可以記錄狀態(tài)。就像兩個(gè)人建立交談后,在交談的過程中我們知道雙方彼此,但一旦結(jié)束對(duì)話,我們就形同陌路。

Cookies

session_id 創(chuàng)建好了,接下來就是要將這個(gè) sesson_id 傳給瀏覽器,讓瀏覽器把它保存起來,并讓瀏覽器在之后的每次請求中都帶上這個(gè) session_id,好讓服務(wù)器識(shí)別用戶。

但瀏覽器的請求是基于 HTTP 協(xié)議的,這種協(xié)議的一個(gè)特點(diǎn)是 無狀態(tài)。即在協(xié)議的實(shí)現(xiàn)上,無法知道對(duì)方是誰,任意兩個(gè)請求都是獨(dú)立的,它不知道一個(gè)請求的發(fā)起人是否為之前某個(gè)請求的發(fā)起人。這樣的話,我們就難以實(shí)現(xiàn)維持登錄狀態(tài)。

為了解決這個(gè)問題,Cookies 出現(xiàn)了,它能夠?qū)⒎?wù)端返回的一些信息保存下來,并在之后的請求中將其帶上。

服務(wù)端會(huì)在 HTTP 響應(yīng)頭字段中帶上 Set-Cookie 字段,會(huì)帶上我們需要設(shè)置的鍵值對(duì),以及其他信息(比如有效期),如下:

Set-Cookie: session_id=kdj1231j; Max-Age=10000000

瀏覽器接收到后,就會(huì)將其保存到瀏覽器中。之后的每次請求,瀏覽器都會(huì)在 HTTP 請求頭中帶上 session_id 信息:

Cookie: session_id=kdj1231j;

服務(wù)端會(huì)取出 session_id 去 session 映射表中去找。

如果存在,我們就取出其用戶 id,基于這個(gè)用戶 id 去獲取一些私人信息,比如你的銀行余額。

結(jié)尾

Session 是一個(gè) 用戶憑證(sesson_id) 映射到 用戶id 的一個(gè)映射表,用于通過用戶憑證識(shí)別用戶。

而 Cookies 則是 HTTP 協(xié)議中可以用來保存狀態(tài)的驚喜小甜點(diǎn),它能夠?qū)⒎?wù)器返回的一些數(shù)據(jù)保存下來,在下一次請求中攜帶上。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2024-04-03 15:33:04

JWTSession傳輸信息

2023-10-27 08:23:10

CookieWeb存儲(chǔ)

2018-09-20 16:10:48

CookiesSession前端

2020-11-09 14:07:53

PyQtQt編程

2020-03-09 20:56:19

LoRaLoRaWAN無線技術(shù)

2022-09-07 18:32:57

并發(fā)編程線程

2022-09-08 18:38:26

LinuxWindowsmacOS

2022-06-06 14:53:02

LoRaLoRaWAN

2021-05-16 14:26:08

RPAIPACIO

2024-05-27 00:40:00

2021-12-17 14:40:02

while(1)for(;;)語言

2024-09-09 13:10:14

2022-02-27 15:33:22

安全CASBSASE

2024-03-05 18:59:59

前端開發(fā)localhost

2023-12-15 09:21:17

ObjectJavaString

2022-08-22 07:06:32

MyBatisSQL占位符

2022-08-31 08:33:54

Bash操作系統(tǒng)Linux

2025-03-10 09:30:00

SpringJava開發(fā)

2022-01-16 07:46:53

SpringDataASSM

2022-08-03 07:04:56

GETHTTPPOST
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久毛片av大全日韩 | 婷婷一级片 | 亚洲精品永久免费 | 亚洲444eee在线观看 | 日韩中文字幕视频在线观看 | 91在线免费视频 | 黄色片视频| 伊人狠狠干 | 一区二区三区亚洲视频 | 欧美日韩亚洲国产 | 高清国产午夜精品久久久久久 | caoporn免费在线视频 | 国产精品久久777777 | 日韩视频一区二区三区 | 成人免费视频网站在线看 | 欧美一级二级三级 | 国产在线看片 | 亚洲精品高清视频 | 午夜视频在线观看视频 | 亚洲a网| 91视频进入| 国产午夜精品久久久久 | 中文字幕一区二区三区四区五区 | 精品欧美黑人一区二区三区 | 国产三级日本三级 | 一级片av | 91社区在线观看播放 | 国产目拍亚洲精品99久久精品 | 欧美另类视频在线 | 中国三级黄色录像 | 在线亚洲一区二区 | 欧美一区二区三区一在线观看 | 久久久久久一区 | 久久综合激情 | 免费一看一级毛片 | 亚欧洲精品在线视频免费观看 | 国产免费av在线 | 99精品久久久久久久 | 中日字幕大片在线播放 | 国产视频1 | 免费在线观看一区二区三区 |