字節跳動面試最愛問的Cookie和Session,到底有什麼區別?

菜雞每日一面系列打卡38

每天一道面試題目

助力小夥伴輕鬆拿offer

堅持就是勝利,我們一起努力!

 

題目描述

Cookie和Session有什麼區別與聯繫?

 

題目分析

Cookie和Session的區別與聯繫歷來是面試考查的熱點,該題頻繁出現在阿里巴巴、字節跳動等大廠的面試過程中。既然是熱點,回答就更要出彩,一道接近於開卷考試的題目,如果答得不好是很可能對面試結果有決定性作用的。

那麼,如何回答才能出彩呢?一句話概況就是,要有自己獨到的見解,不能人云亦云。要做到這一點並不容易,需要深入理解其背後的原理,而不是隻靠背題。

要想搞清楚兩個事物的區別與聯繫,首先需要了解這兩個事物的概念。接下來,隨菜雞一起去看看吧!

 

題目解答

Session是一種抽象的概念,而不是一種具體的實現,只要能建立起user agent與server之間一對一交互的,就可以稱之爲Session,這意味着它可以有很多種實現。網上很多文章對Session的描述侷限在一種通用的實現上,這在一定程度上來說是一種誤導。

Cookie作爲HTTP協議中header頭的一個字段,是一個具體的存在,它可以認爲是廣義Session的一種實現方式。

而我們日常所說的Session,實際上是藉助Cookie及服務器存儲的一種會話實現。從這個層面出發,二者關係如下:

Cookie存儲在客戶端(瀏覽器),而Session存儲在服務端。這一條也決定了Session相較Cookie來說更安全。

Session的運行依賴Session id,而Session id是存在Cookie中的,如果瀏覽器禁用了Cookie,Session也會失效。

Cookie保存數據<=4KB,一個站點最多保存20個Cookie,而Session並沒有上限,取決於服務器的能力和具體的使用場景。

Cookie支持跨域名訪問,Session不支持跨域名訪問。

Cookie可以設置爲長期有效,而Session會隨會話窗口關閉而失效。

以上便是菜雞對Cookie和Session之間區別的一些總結,供大家參考。

 

相關鏈接

字節跳動的三輪技術面試教會了我什麼?

學習 | 工作 | 分享

長按關注“有理想的菜雞

只有你想不到,沒有你學不到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章