cookie塘揣、session、localStorage分別有什么作用宿崭?

一亲铡、cookie
cookie是存儲(chǔ)在瀏覽器上的一小段數(shù)據(jù),用來記錄某些當(dāng)頁面關(guān)閉或者刷新后仍然需要記錄的信息葡兑。在控制臺(tái)用 「document.cookie」查看你當(dāng)前正在瀏覽的網(wǎng)站的cookie奖蔓。
cookie可以使用 js 在瀏覽器直接設(shè)置(用于記錄不敏感信息,如用戶名), 也可以在服務(wù)端通使用 HTTP 協(xié)議規(guī)定的 set-cookie 來讓瀏覽器種下cookie讹堤,這是最常見的做法吆鹤。(打開一個(gè)網(wǎng)站,清除全部cookie洲守,然后刷新頁面疑务,在network的Response headers試試找一找set-cookie吧)
每次網(wǎng)絡(luò)請(qǐng)求 Request headers 中都會(huì)帶上cookie沾凄。所以如果 cookie 太多太大對(duì)傳輸效率會(huì)有影響。
一般瀏覽器存儲(chǔ)cookie 最大容量為4k知允,所以大量數(shù)據(jù)不要存到cookie撒蟀。
設(shè)置cookie時(shí)的參數(shù):

path:表示 cookie 影響到的路徑,匹配該路徑才發(fā)送這個(gè) cookie廊镜。expires 和 maxAge:告訴瀏覽器 cookie 時(shí)候過期牙肝,maxAge 是 cookie 多久后過期的相對(duì)時(shí)間。不設(shè)置這兩個(gè)選項(xiàng)時(shí)會(huì)產(chǎn)生 session cookie嗤朴,session cookie 是 transient 的配椭,當(dāng)用戶關(guān)閉瀏覽器時(shí),就被清除雹姊。一般用來保存 session 的 session_id股缸。
secure:當(dāng) secure 值為 true 時(shí),cookie 在 HTTP 中是無效吱雏,在 HTTPS 中才有效
httpOnly:瀏覽器不允許腳本操作 document.cookie 去更改 cookie敦姻。一般情況下都應(yīng)該設(shè)置這個(gè)為 true,這樣可以避免被 xss 攻擊拿到 cookie歧杏。[cookie 參數(shù)]**[簡(jiǎn)述 Cookie 是什么]

二镰惦、session
當(dāng)一個(gè)用戶打開淘寶登錄后,刷新瀏覽器仍然展示登錄狀態(tài)犬绒。服務(wù)器如何分辨這次發(fā)起請(qǐng)求的用戶是剛才登錄過的用戶呢旺入?這里就使用了session保存狀態(tài)。用戶在輸入用戶名密碼提交給服務(wù)端凯力,服務(wù)端驗(yàn)證通過后會(huì)創(chuàng)建一個(gè)session用于記錄用戶的相關(guān)信息茵瘾,這個(gè) session 可保存在服務(wù)器內(nèi)存中,也可保存在數(shù)據(jù)庫中咐鹤。

創(chuàng)建session后拗秘,會(huì)把關(guān)聯(lián)的session_id 通過setCookie 添加到http響應(yīng)頭部中。
瀏覽器在加載頁面時(shí)發(fā)現(xiàn)響應(yīng)頭部有 set-cookie字段祈惶,就把這個(gè)cookie 種到瀏覽器指定域名下雕旨。
當(dāng)下次刷新頁面時(shí),發(fā)送的請(qǐng)求會(huì)帶上這條cookie行瑞, 服務(wù)端在接收到后根據(jù)這個(gè)session_id來識(shí)別用戶奸腺。

cookie 是存儲(chǔ)在瀏覽器里的一小段「數(shù)據(jù)」,而session是一種讓服務(wù)器能識(shí)別某個(gè)用戶的「機(jī)制」血久,session 在實(shí)現(xiàn)的過程中需要使用cookie突照。 二者不是同一維度的東西。

雖然Session保存在服務(wù)器,對(duì)客戶端是透明的螟深,它的正常運(yùn)行仍然需要客戶端瀏覽器的支持堕绩。這是因?yàn)镾ession 需要使用Cookie作為識(shí)別標(biāo)志窑眯。HTTP協(xié)議是無狀態(tài)的,Session不能依據(jù)HTTP連接來判斷是否為同一客戶冈在,因此服務(wù)器向客戶端瀏覽器發(fā)送一 個(gè)名為JSESSIONID的Cookie乙埃,它的值為該Session的id(也就是HttpSession.getId()的返回值)共耍。Session 依據(jù)該Cookie來識(shí)別是否為同一用戶版仔。

該Cookie為服務(wù)器自動(dòng)生成的游盲,它的maxAge屬性一般為–1,表示僅當(dāng)前瀏覽器內(nèi)有效蛮粮,并且各瀏覽器窗口間不共享益缎,關(guān)閉瀏覽器就會(huì)失效。

因此同一機(jī)器的兩個(gè)瀏覽器窗口訪問服務(wù)器時(shí)然想,會(huì)生成兩個(gè)不同的Session莺奔。但是由瀏覽器窗口內(nèi)的鏈接、腳本等打開的新窗口(也就是說不是雙擊桌面瀏覽器圖標(biāo)等打開的窗口)除外变泄。這類子窗口會(huì)共享父窗口的Cookie令哟,因此會(huì)共享一個(gè)Session。

注意: 新開的瀏覽器窗口會(huì)生成新的Session妨蛹,但子窗口除外屏富。子窗口會(huì)共用父窗口的Session。 例如蛙卤,在鏈接上右擊役听,在彈出的快捷菜單中選擇“在新窗口中打開”時(shí),子窗口便可以訪問父窗口的Session表窘。
三、localStoragelocalStorage HTML5本地存儲(chǔ)web storage特性的API之一甜滨,用于將大量數(shù)據(jù)(最大5M)保存在瀏覽器中乐严,保存后數(shù)據(jù)永遠(yuǎn)存在不會(huì)失效過期,除非用 js手動(dòng)清除衣摩。
不參與網(wǎng)絡(luò)傳輸昂验。
一般用于性能優(yōu)化,可以保存圖片艾扮、js既琴、css、html 模板泡嘴、大量數(shù)據(jù)甫恩。

轉(zhuǎn)載自他人作為學(xué)習(xí)筆記 侵刪

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酌予,隨后出現(xiàn)的幾起案子磺箕,更是在濱河造成了極大的恐慌奖慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件松靡,死亡現(xiàn)場(chǎng)離奇詭異简僧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雕欺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門岛马,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人屠列,你說我怎么就攤上這事啦逆。” “怎么了脸哀?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蹦浦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我撞蜂,道長(zhǎng)盲镶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任蝌诡,我火速辦了婚禮溉贿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘浦旱。我一直安慰自己宇色,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布颁湖。 她就那樣靜靜地躺著宣蠕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甥捺。 梳的紋絲不亂的頭發(fā)上抢蚀,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音镰禾,去河邊找鬼皿曲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吴侦,可吹牛的內(nèi)容都是我干的屋休。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼备韧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼劫樟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤毅哗,失蹤者是張志新(化名)和其女友劉穎听怕,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虑绵,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尿瞭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翅睛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片声搁。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捕发,靈堂內(nèi)的尸體忽然破棺而出疏旨,到底是詐尸還是另有隱情,我是刑警寧澤扎酷,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布檐涝,位于F島的核電站,受9級(jí)特大地震影響法挨,放射性物質(zhì)發(fā)生泄漏谁榜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一凡纳、第九天 我趴在偏房一處隱蔽的房頂上張望窃植。 院中可真熱鬧,春花似錦荐糜、人聲如沸巷怜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽延塑。三九已至,卻和暖如春答渔,著一層夾襖步出監(jiān)牢的瞬間页畦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工研儒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人独令。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓端朵,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親燃箭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子冲呢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容