這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么理解Session、Cookie基礎(chǔ)知識(shí),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),網(wǎng)站空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,成都溫江機(jī)房,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺(tái)以及歐美等多個(gè)國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。Web前端作為當(dāng)前市場上公認(rèn)的高薪行業(yè)之一,吸引了很多人加入學(xué)習(xí)。不過,隨著企業(yè)對求職者技能要求的提高,不難發(fā)現(xiàn)面試難度也在進(jìn)一步加大。有不少同學(xué)想知道企業(yè)常問的考題是什么,接下來好程序員Web前端培訓(xùn)小編就給大家簡單分享Session、Cookie相關(guān)面試題。
1、Cookie和Session
HTTP協(xié)議是一種無狀態(tài)協(xié)議,即每次服務(wù)端接收到客戶端的請求時(shí),都是一個(gè)全新的請求,服務(wù)器并不知道客戶端的歷史請求記錄;Session和Cookie的主要目的就是為了彌補(bǔ)HTTP的無狀態(tài)特性。
2、Session是什么
客戶端請求服務(wù)端,服務(wù)端會(huì)為這次請求開辟一塊內(nèi)存空間,這個(gè)對象便是Session對象,存儲(chǔ)結(jié)構(gòu)為ConcurrentHashMap。Session彌補(bǔ)了HTTP無狀態(tài)特性,服務(wù)器可以利用Session存儲(chǔ)客戶端在同一個(gè)會(huì)話期間的一些操作記錄。
3、Session如何判斷是否是同一會(huì)話
服務(wù)器第一次接收到請求時(shí),開辟了一塊Session空間(創(chuàng)建了Session對象),同時(shí)生成一個(gè) sessionId,并通過響應(yīng)頭的 Set-Cookie:JSESSIONID=XXXXXXX命令,向客戶端發(fā)送要求設(shè)置Cookie 的響應(yīng);客戶端收到響應(yīng)后,在本機(jī)客戶端設(shè)置了一個(gè)JSESSIONID=XXXXXXX的Cookie信息,該Cookie 的過期時(shí)間為瀏覽器會(huì)話結(jié)束。
4、Cookie是什么?
HTTP協(xié)議中的Cookie包括Web Cookie和瀏覽器Cookie,它是服務(wù)器發(fā)送到Web瀏覽器的一小塊數(shù)據(jù)。服務(wù)器發(fā)送到瀏覽器的Cookie,瀏覽器會(huì)進(jìn)行存儲(chǔ),并與下一個(gè)請求一起發(fā)送到服務(wù)器。通常,它用于判斷兩個(gè)請求是否來自于同一個(gè)瀏覽器,例如用戶保持登錄狀態(tài)。
5、什么是Session Cookies
Session Cookies也稱為會(huì)話Cookies,在Session Cookies中,用戶的登錄狀態(tài)會(huì)保存在服務(wù)器的內(nèi)存中。當(dāng)用戶登錄時(shí),Session就被服務(wù)端安全的創(chuàng)建。在每次請求時(shí),服務(wù)器都會(huì)從會(huì)話Cookie中讀取SessionId,如果服務(wù)端的數(shù)據(jù)和讀取的SessionId相同,那么服務(wù)器就會(huì)發(fā)送響應(yīng)給瀏覽器,允許用戶登錄。
6、什么是Json Web Tokens
Json Web Token的簡稱就是JWT,通??梢苑Q為Json令牌。它是RFC 7519中定義的用于安全的將信息作為 Json 對象進(jìn)行傳輸?shù)囊环N形式。JWT 中存儲(chǔ)的信息是經(jīng)過數(shù)字簽名的,因此可以被信任和理解??梢允褂?HMAC 算法或使用 RSA/ECDSA 的公用/專用密鑰對 JWT 進(jìn)行簽名。
使用JWT主要用來下面兩點(diǎn):
認(rèn)證(Authorization):這是使用 JWT 最常見的一種情況,一旦用戶登錄,后面每個(gè)請求都會(huì)包含JWT,從而允許用戶訪問該令牌所允許的路由、服務(wù)和資源。單點(diǎn)登錄是當(dāng)今廣泛使用JWT的一項(xiàng)功能,因?yàn)樗拈_銷很小。
信息交換(Information Exchange):JWT是能夠安全傳輸信息的一種方式。通過使用公鑰/私鑰對JWT進(jìn)行簽名認(rèn)證。此外,由于簽名是使用head和payload計(jì)算的,因此你還可以驗(yàn)證內(nèi)容是否遭到篡改。
上述就是小編為大家分享的怎么理解Session、Cookie基礎(chǔ)知識(shí)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。