日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cookie、Session、Token、sessionStorage、localStorage简介__Token放在 cookie, sessionStorage 和 localStorage中区别

發布時間:2025/3/12 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cookie、Session、Token、sessionStorage、localStorage简介__Token放在 cookie, sessionStorage 和 localStorage中区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cookie、Session、Token、sessionStorage、localStorage簡介

cookie

是一個非常具體的東西,只得是瀏覽器里永久存儲的一種數據,是瀏覽器實現的一種數據存儲功能。Cookie在計算機中是個存儲在瀏覽器目錄中的文本文件,當瀏覽器運行時,存儲在RAM中發揮作用(此種 Cookies 稱作 Session Cookies),一旦用戶從該網站或服務器退出,Cookie可存儲在用戶本地的硬盤上(此種Cookies稱作Persistent Cookies)。Cookie使用限制:Cookie 必須在 HTML 文件的內容輸出之前設置;不同的瀏覽器(Netscape Navigator、Internet Explorer)對Cookie的處理不一致,使用時一定要考慮;客戶端用戶如果設置禁止 Cookie,則 Cookie 不能建立。目前,在客戶端,一個瀏覽器能創建的Cookie數量最多為300個,并且每個不能超過4KB,每個Web站點能設置的Cookie總數不能超過20個。

cookie執行流程:

A:首先,客戶端會發送一個http請求到服務器端。

B:服務器端接受客戶端請求后,發送一個http響應到客戶端,這個響應頭,其中就包含Set-Cookie頭部。

C:在客戶端發起的第二次請求(注意:如果服務器需要我們帶上Cookie,我們就需要在B步驟上面拿到這個Cookie然后作為請求頭一起發起第二次請求),提供給了服務器端可以用來唯一標識客戶端身份的信息。這時,服務器端也就可以判斷客戶端是否啟用了cookies。盡管,用戶可能在和應用程序交互的過程中突然禁用cookies的使用,但是,這個情況基本是不太可能發生的,所以可以不加以考慮,這在實踐中也被證明是對的。

Session

從字面上講,就是會話。計算機里服務器為了區分各個瀏覽器客戶端是哪一個發送的請求,為每個web客戶端加的身份標識就是session,用于區別不同web客戶端的的請求。至于客戶端如何保存身份標識,對于web客戶端,采用cookie的方式保存。服務器的session需要至少從客戶端傳來一個session_id,此session_id通常存與cookie中,或是url中。Session在一次會話中解決2次HTTP的請求的關聯,讓它們產生聯系,讓2兩個頁面都能讀取到找個這個全局的session信息。session信息存在于服務器端,所以也就很好的解決了安全問題。

Token

token是用戶身份的驗證方式,我們通常叫它:令牌。最簡單的token組成:uid(用戶唯一的身份標識)、time(當前時間的時間戳)、sign(簽名,由token的前幾位+鹽以哈希算法壓縮成一定長的十六進制字符串,可以防止惡意第三方拼接token請求服務器)。還可以把不變的參數也放進token,避免多次查庫。

應用場景:

A:當用戶首次登錄成功(注冊也是一種可以適用的場景)之后, 服務器端就會生成一個token值,這個值,會在服務器保存token值(保存在數據庫中),再將這個token值返回給客戶端。

B:客戶端拿到token值之后,進行本地保存(SP存儲是大家能夠比較支持和易于理解操作的存儲)。

C:當客戶端再次發送網絡請求(一般不是登錄請求)的時候,就會將這個token值附帶到參數中發送給服務器。

D:服務器接收到客戶端的請求之后,會取出token值與保存在本地(數據庫)中的token值做對比:

對比一:如果兩個 token 值相同, 說明用戶登錄成功過!當前用戶處于登錄狀態!
對比二:如果沒有這個 token 值, 則說明沒有登錄成功。
對比三:如果 token 值不同: 說明原來的登錄信息已經失效,讓用戶重新登錄。

cookie和session區別

1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的cookie并進行cookie欺騙,考慮到安全
應當使用session。
3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,考慮
到減輕服務器性能方面,應當使用cookie。
、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、個人建議:
將登陸信息等重要信息存放為session。
其他信息如果需要保留,可以放在cookie中。

Token和Session 的區別

session和 token并不矛盾,作為身份認證token安全性比session好,因為每個請求都有簽名還能防止監聽以及重放攻擊,而session就必須靠鏈路層來保障通訊安全了。如上所說,如果你需要實現有狀態的會話,仍然可以增加session來在服務器端保存一些狀態。App通常用restful api跟server打交道。Rest是stateless的,也就是app不需要像browser那樣用cookie來保存session,因此用session token來標示自己就夠了,session/state由api server的邏輯處理。如果你的后端不是stateless的rest api,那么你可能需要在app里保存session.可以在app里嵌入webkit,用一個隱藏的browser來管理cookie session.Session是一種HTTP存儲機制,目的是為無狀態的HTTP提供的持久機制。所謂Session認證只是簡單的把User信息存儲到Session里,因為SID的不可預測性,暫且認為是安全的。這是一種認證手段。而Token,如果指的是OAuth Token或類似的機制的話,提供的是 認證 和 授權 ,認證是針對用戶,授權是針對App。其目的是讓 某App有權利訪問 某用戶 的信息。這里的Token是唯一的。不可以轉移到其它App上,也不可以轉到其它 用戶 上。轉過來說Session。Session只提供一種簡單的認證,即有此SID,即認為有此User的全部權利。是需要嚴格保密的,這個數據應該只保存在站方,不應該共享給其它網站或者第三方App。所以簡單來說,如果你的用戶數據可能需要和第三方共享,或者允許第三方調用API接口,用Token。如果永遠只是自己的網站,自己的App,用什么就無所謂了。token就是令牌,比如你授權(登錄)一個程序時,他就是個依據,判斷你是否已經授權該軟件;cookie就是寫在客戶端的一個txt文件,里面包括你登錄信息之類的,這樣你下次在登錄某個網站,就會自動調用cookie自動登錄用戶名;session和cookie差不多,只是session是寫在服務器端的文件,也需要在客戶端寫入cookie文件,但是文件里是你的瀏覽器編號.Session的狀態是存儲在服務器端,客戶端只有session id;而Token的狀態是存儲在客戶端。

sessionStorage 、localStorage和cookie之間的區別

共同點:都是保存在瀏覽器端,且都遵循同源策略。
不同點:在于生命周期與作用域的不同。
作用域:localStorage只要在相同的協議、相同的主機名、相同的端口下,就能讀取/修改到同一份localStorage數據。
sessionStorage比localStorage更嚴苛一點,除了協議、主機名、端口外,還要求在同一窗口(也就是瀏覽器的標簽頁)下:
生命周期:localStorage 是持久化的本地存儲,存儲在其中的數據是永遠不會過期的,使其消失的唯一辦法是手動刪除;而sessionStorage是臨時性的本地存儲,它是會話級別的存儲,當會話結束(頁面被關閉)時,存儲內容也隨之被釋放。cookie一般由服務器生成,可設置失效時間,如果在瀏覽器端生成cookie,默認關閉瀏覽器后失效。
存放數據大小:cookie大約在4k左右。
localStorage和SessionStorage一般為5MB左右。
與服務端通信:
cookie每次都攜帶在HTTP的頭中,如果使用cookie保存過多數據會帶來性能問題。
localStorage和SessionStorage僅在客戶端(瀏覽器)中保存,不參與服務端通信。
易用性:cookie需要程序員自己封裝,源生的cookie接口不友好。local/session源生接口可以接受,也可以再次封裝來對Object和Array有更好的支持。

Token放在 cookie, sessionStorage 和 localStorage 中的區別

Token是什么

  • Token 其實就是訪問資源的憑證
  • 一般是用戶通過用戶名密碼登錄成功之后,服務器將登錄憑證作為數字簽名,加密之后得到的字符串就是 Token

區別

  • Token 在用戶登錄成功之后返回給客戶端,客戶端組要有三種存儲方式
  • 儲存在 localStorage 中,每次調用接口時放在http請求頭里面,長期有效
  • 儲存在 sessionStorage 中,每次調用接口時,把它當為一個字段傳給后臺,瀏覽器關閉自動清除
  • 儲存在 cookie 中,每次調用接口會自動發送,不過缺點是不能跨域

深入了解

  • 將 Token 存儲在 webStorage(localStorage,sessionStorage) 中可以通過同域的js訪問,這樣導致很容易受到 xss 攻擊,特別是項目中引入很多第三方js庫的情況下,如果js腳本被盜用,攻擊者就可以輕易訪問你的網站。

xss攻擊:是一種注入代碼攻擊,通過在網站里注入script代碼,當訪問者瀏覽網站的時候通過注入的script代碼竊取用戶信息,盜用用戶身份等

  • 將 Token 存儲在 cookie 中,可以指定 httponly 來防止 js 被讀取,也可以指定 secure 來保證 Token 只在 HTTPS 下傳輸,缺點是不符合 RestFul 最佳實踐,容易受到 CSRF 攻擊。

CSRF: 跨站點請求偽造,攻擊者盜用已經認證過的用戶信息,以用戶信息的名義進行操作(轉賬,購買商品等),由于身份已經認證過了,所以網站會認為此操作是用戶本人操作。 CSRF 并不能拿到用戶信息,但它可以盜用用戶的憑證進行操作。

總結

以上是生活随笔為你收集整理的cookie、Session、Token、sessionStorage、localStorage简介__Token放在 cookie, sessionStorage 和 localStorage中区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色aaa| 特黄特色大片免费视频大全 | 国产在线日本 | 女生抠逼视频 | 九色精品视频 | 国产成人精品一区二区三区视频 | 亚洲人人人| 国产私密视频 | 亚洲成av人片在线观看无 | 玩偶游戏在线观看免费 | 欧美日本另类 | 一级片麻豆 | 毛片视频软件 | 超清av在线 | 成人免费毛片嘿嘿连载 | 久久精品国产清自在天天线 | 她也啪在线视频 | 秘密爱大尺度做爰呻吟 | 97超碰人人看 | 嫩草伊人久久精品少妇av | 寡妇一级片 | 国产97色在线 | 国产 | 国产精品羞羞答答 | 国产欧美自拍 | 亚洲一区二区高清视频 | 欧美日韩中文国产 | 亚洲一区二区三区在线看 | 青娱乐最新地址 | 亚洲自拍在线观看 | 91免费. | 色欲色香天天天综合网www | 欧美黑人啪啪 | 亚洲黄在线观看 | 成人在线黄色 | 一级成人免费视频 | xxx日本黄色 | 五月视频| 白浆网站 | 亚洲人一区 | 欧美精品网址 | 国产精品午夜未成人免费观看 | 今天高清视频在线观看视频 | 香港三日本8a三级少妇三级99 | 国产做a视频 | 一区二区三区四区五区六区 | 欧美精品一区二区久久婷婷 | 国产又黄又猛 | 国产精品麻豆一区 | 性一级视频 | 久草热在线观看 | 香蕉久久a毛片 | 国产男女视频在线观看 | 老牛av一区二区 | 五月婷婷丁香在线 | 一区二区三区免费视频观看 | 成人在线网站 | 国产女无套免费视频 | 天天操天天干天天摸 | 亚洲无码精品国产 | 东京干手机福利视频 | 人人模人人干 | 国产成人精品777777 | 72成人网| 久久久99精品免费观看 | aaa久久| 国产伦精品一区三区精东 | av久操| 日韩天堂网 | 尤物视频网站在线观看 | 国产尤物视频在线 | 91porn九色 | 天天干天天色 | 天天av天天翘 | 亚洲国产一区二区a毛片 | 亚洲大色网 | 美女被娇喘视频 | 成人在线观看一区二区 | 日韩成人高清 | 欧美在线观看免费高清 | av无码av天天av天天爽 | 特级毛片a | 进去里片欧美 | 爱爱一区| 一级国产黄色片 | 欧美超逼视频 | 黄色三级免费观看 | 一级艳片新婚之夜 | 台湾三级伦理片 | 69社| 日本一级大毛片a一 | 肉嫁高柳家 高清 | 精品久久久网站 | 男人插入女人下面的视频 | av高清 | 欧美性教育视频 | 无码少妇一区二区 | 被两个男人吃奶三p爽文 | 人人艹人人爽 | 国产午夜精品久久久 |