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
相關文章
- Spring Session工作原理SpringSession
- WebView快取原理分析和應用WebView快取
- rabbitmq原理和應用MQ
- MySQL Binlog 技術原理和業務應用案例分析MySql
- Dubbo底層原理分析和分散式實際應用分散式
- Docker 工作原理分析Docker
- 英特爾:5G典型應用案例分析(附下載)
- 11 應用程式突報Oracle TNS-12514典型案例分析Oracle
- Cookie、Session、JWT在koa中的應用及實現原理CookieSessionJWT
- 典型伺服器模式原理分析與實踐伺服器模式
- Angular @Inject 註解的實際應用例子和工作原理淺析Angular
- RxJs fromEvent 工作原理分析JS
- 深入分析Session和CookieSessionCookie
- websocket原理和應用入門Web
- 應用配置管理,基礎原理分析
- 海外IP池的工作原理及應用場景
- Flink Table Store 典型應用場景
- MPLS VPN典型應用場景——VecloudCloud
- Composer 工作原理 [原始碼分析]原始碼
- RxJs map operator 工作原理分析JS
- 什麼是OAuth 2.0?深度解析OAuth 2.0的工作原理和應用場景OAuth
- Day14 session原理和中介軟體Session
- 令牌Token和會話Session原理與攻略會話Session
- Roguelike機制的原理和應用
- Struts2 原始碼分析-----工作原理分析原始碼
- BOSHIDA DC電源模組的工作原理及應用
- 和數傳媒:人工智慧和區塊鏈可能是典型應用人工智慧區塊鏈
- 設計模式 | 策略模式及典型應用設計模式
- Apache Hudi典型應用場景知多少?Apache
- springmvc工作原理及原始碼分析SpringMVC原始碼
- 數字簽名的原理和應用
- 設計模式 | 中介者模式及典型應用設計模式
- 設計模式 | 外觀模式及典型應用設計模式
- 設計模式 | 模板方法模式及典型應用設計模式
- 設計模式 | 組合模式及典型應用設計模式
- 設計模式 | 享元模式及典型應用設計模式
- 行業實踐:RocketMQ 業務整合典型行業應用和實踐行業MQ
- 從SpringMvc原始碼分析其工作原理SpringMVC原始碼