前端面試題:session、cookie和token的區別你知道嗎

session:

瀏覽器第一次訪問服務器,服務器會創建一個session,並在在cookie中保存該sessionId——》session,(瀏覽器禁用了cookie或不支持cookie,這種可以通過URL重寫的方式發到服務器)

sessionid ,一般都是一段隨機字符串,需要到後端去檢索 id 的有效性

類似: 我發給你一張身份證,但只是一張寫著身份證號碼的紙片。你每次來辦事,我去後臺查一下你的 id 是不是有效。


token:

瀏覽器第一次訪問服務器,根據傳過來的唯一標識userId,服務端會通過一些算法,如常用的HMAC-SHA256算法,然後加一個密鑰,生成一個token,然後通過BASE64編碼一下之後將這個token發送給客戶端;客戶端將token保存起來,下次請求時,帶著token,服務器收到請求後,然後會用相同的算法和密鑰去驗證token,如果通過,執行業務操作,不通過,返回不通過信息;

token在服務器是可以不需要存儲用戶的信息的,後端不需要記錄什麼東西,每次一個無狀態請求,每次解密驗證,每次當場得出合法 /非法的結論

類似: 我發給你一張加密的身份證,以後你只要出示這張卡片,我就知道你一定是自己人。


cookie設置domain為頂級域名時可以被其他二級域名共享,例如:如www.abc.com設置domain為abc.com,news.abc.com能夠共享cookie;

1、頂級域名的cookie在頂級域名或者2級域名都可以刪除,但是用非頂級域名訪問的網站要刪除頂級域名的cookie,需要設置獲取到的cookie的domain為頂級域名,這樣才能刪除頂級域名的cookie,否則無法刪除,默認的會刪除訪問的域名下對應的cookie,而不是頂級域名的。

2、刪除2級域名自身生成的cookie不需要設置domain,可以直接刪除。


分享到:


相關文章: