Session工作原理和典型應用分析
1、建立Session
當使用者訪問到一個伺服器,如果伺服器啟用Session,伺服器就要為該使用者建立一個SESSION,在建立這個SESSION的時候,伺服器首先檢查這個使用者發來的請求裡是否包含了一個SESSION ID,如果包含了一個SESSION ID則說明之前該使用者已經登陸過併為此使用者建立過SESSION,那伺服器就按照這個SESSION ID把這個SESSION在伺服器的記憶體中查詢出來,如果客戶端請求裡不包含有SESSION ID,則為該客戶端建立一個SESSION並生成一個與此SESSION相關的SESSION ID。這個SESSION ID是唯一的、不重複的、不容易找到規律的字串,這個SESSION ID將被在本次響應中返回到客戶端儲存,而儲存這個SESSION ID的正是COOKIE,這樣在互動過程中瀏覽器可以自動的按照規則把這個標識傳送給伺服器。
2、使用Session
我們知道在IE中,我們可以在工具的Internet選項中把Cookie禁止,那麼會不會出現把客戶端的Cookie禁止了,那麼SESSIONID就無法再用了呢?找了一些資料說明,可以有其他機制在COOKIE被禁止時仍然能夠把Session id傳遞迴伺服器。
經常被使用的一種技術叫做URL重寫,就是把Session id直接附加在URL路徑的後面一種是作為URL路徑的附加資訊,表現形式為:
https://www.qilucms.com /xxx;jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764;
另一種是作為查詢字串附加在URL後面,表現形式為:
https://www.why114.com /xxx?jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
還有一種就是表單隱藏欄位。就是伺服器會自動修改表單,新增一個隱藏欄位,以便在表單提交時能夠把Session id傳遞迴伺服器。
Session作用
Session的根本作用就是在服務端儲存使用者和伺服器會話的一些資訊。典型的應用有:
1、判斷使用者是否登入。
2、購物車功能。
Session例項問題
現有系統A,B; 假設A系統是可以獨立執行的web系統,即可以和瀏覽器直接處理session, B系統是基於mobile的,需要呼叫A系統的功能介面,
在保持A不改變的情況下,即登陸驗證,session儲存都不變的情況下,B系統能處理前端使用者的請求。
這裡提供的方案是使用PHP實現
在使用者登陸成功後,將儲存的session的session-id返回給B系統,然後B系統每次請求其他介面都帶session_id。
A系統在session_start前加上session_id(session_id);
這樣B系統就能安全的呼叫A
相關文章
- WebView快取原理分析和應用WebView快取
- WebView 快取原理分析和應用WebView快取
- Spring Session工作原理SpringSession
- 典型關聯分析(CCA)原理總結
- 引數session_cached_cursors的工作原理及優缺點分析Session
- rabbitmq原理和應用MQ
- Docker 工作原理分析Docker
- MySQL Binlog 技術原理和業務應用案例分析MySql
- Dubbo底層原理分析和分散式實際應用分散式
- 典型伺服器模式原理分析與實踐伺服器模式
- Ajax的原理和應用
- Session基本應用Session
- Angular @Inject 註解的實際應用例子和工作原理淺析Angular
- 英特爾:5G典型應用案例分析(附下載)
- Cookie、Session、JWT在koa中的應用及實現原理CookieSessionJWT
- websocket原理和應用入門Web
- 應用配置管理,基礎原理分析
- 海外IP池的工作原理及應用場景
- MPLS VPN典型應用場景——VecloudCloud
- ZooKeeper典型應用場景一覽
- RxJs fromEvent 工作原理分析JS
- 什麼是OAuth 2.0?深度解析OAuth 2.0的工作原理和應用場景OAuth
- Roguelike機制的原理和應用
- 11 應用程式突報Oracle TNS-12514典型案例分析Oracle
- 深入分析Session和CookieSessionCookie
- Struts2 原始碼分析-----工作原理分析原始碼
- 霍爾感測器的工作原理、分類及應用
- BOSHIDA DC電源模組的工作原理及應用
- Apache Hudi典型應用場景知多少?Apache
- 設計模式 | 策略模式及典型應用設計模式
- Flink Table Store 典型應用場景
- Zookeeper 介紹及典型應用場景
- [SSL]公鑰與私鑰典型應用
- 和數傳媒:人工智慧和區塊鏈可能是典型應用人工智慧區塊鏈
- Composer 工作原理 [原始碼分析]原始碼
- RxJs map operator 工作原理分析JS
- 行業實踐:RocketMQ 業務整合典型行業應用和實踐行業MQ
- 數字簽名的原理和應用