久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 如果客戶端禁止cookie能實現(xiàn)session還能用嗎?

如果客戶端禁止cookie能實現(xiàn)session還能用嗎?

來源:千鋒教育
發(fā)布人:qyf
時間: 2022-08-03 11:48:00 1659498480

  如果客戶端禁止 cookie 能實現(xiàn) session 還能用嗎?

  一般默認情況下,在會話中,服務器存儲 session 的 sessionid 是通過 cookie 存在瀏覽器里的。

  如果瀏覽器禁用了 cookie,瀏覽器請求服務器無法攜帶 sessionid,服務器無法識別請求中的用戶身份,session失效。

  但可以通過其他方法在禁用 cookie 的情況下,可以繼續(xù)使用session。

  通過url重寫,把 sessionid 作為參數(shù)追加的原 url 中,后續(xù)的瀏覽器與服務器交互中攜帶 sessionid 參數(shù)。

  服務器的返回數(shù)據(jù)中包含 sessionid,瀏覽器發(fā)送請求時,攜帶 sessionid 參數(shù)。

  通過 Http 協(xié)議其他 header 字段,服務器每次返回時設置該 header 字段信息,瀏覽器中 js 讀取該 header 字段,請求服務器時,js設置攜帶該 header 字段。

  cookie、session、token 三者之間的關系

  1. session機制

1

  session是服務端存儲的一個對象,主要用來存儲所有訪問過該服務端的客戶端的用戶信息(也可以存儲其他信息),從而實現(xiàn)保持用戶會話狀態(tài)。但是服務器重啟時,內存會被銷毀,存儲的用戶信息也就消失了。

  不同的用戶訪問服務端的時候會在session對象中存儲鍵值對,“鍵”用來存儲開啟這個用戶信息的“鑰匙”,在登錄成功后,“鑰匙”通過cookie返回給客戶端,客戶端存儲為sessionId記錄在cookie中。當客戶端再次訪問時,會默認攜帶cookie中的sessionId來實現(xiàn)會話機制。

  1.1 session是基于cookie的

  cookie的數(shù)據(jù)4k左右;

  cookie存儲數(shù)據(jù)的格式:字符串key=value

  cookie存儲有效期:可以自行通過expires進行具體的日期設置,如果沒設置,默認是關閉瀏覽器時失效。

  cookie有效范圍:當前域名下有效。所以session這種會話存儲方式方式只適用于客戶端代碼和服務端代碼運行在同一臺服務器上(前后端項目協(xié)議、域名、端口號都一致,即在一個項目下)

  1.2 session的持久化

  用于解決重啟服務器后session消失的問題。在數(shù)據(jù)庫中存儲session,而不是存儲在內存中。通過包:express-mysql-session。

  當客戶端存儲的cookie失效后,服務端的session不會立即銷毀,會有一個延時,服務端會定期清理無效session,不會造成無效數(shù)據(jù)占用存儲空間的問題。

  2. token機制

2

  該機制適用于前后端分離的項目(前后端代碼運行在不同的服務器下)。

  請求登錄時,token和sessionid原理相同,是對key和key對應的用戶信息進行加密后的加密字符,登錄成功后,會在響應主體中將{token:“字符串”}返回給客戶端。

  客戶端通過cookie都可以進行存儲。再次請求時不會默認攜帶,需要在請求攔截器位置給請求頭中添加認證字段Authorization攜帶token信息,服務器就可以通過token信息查找用戶登錄狀態(tài)。

  session的工作原理?

  當客戶端登錄完成后,會在服務端產生一個session,此時服務端會將sessionid返回給客戶端瀏覽器。客戶端將sessionid儲存在瀏覽器的cookie中,當用戶再次登錄時,會獲得對應的sessionid,然后將sessionid發(fā)送到服務端請求登錄,服務端在內存中找到對應的sessionid,完成登錄,如果找不到,返回登錄頁面。

  更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎的就業(yè)班,有針對想提升技術的好程序員班,高品質課程助力你實現(xiàn)java程序員夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT