推薦教學:PHP教學
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路徑的附加信息,表現形式為:
http://…。 /xxx;jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng! -145788764;
另一種是作為查詢字串附加在URL後面,表現形式為:
http://…。 。 /xxx? jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng! -145788764
還有一種就是表單隱藏欄位。就是伺服器會自動修改表單,加入一個隱藏字段,以便在表單提交時能夠把Session id傳回伺服器。
Session作用
# Session的根本作用就是在服務端儲存使用者和伺服器會話的一些資訊。典型的應用程式有:
1、判斷使用者是否登入。
2、購物車功能。
Session 實例問題
現有系統A,B; 假設A系統是可以獨立運作的web系統,即可以和瀏覽器直接處理session, B系統是基於mobile的,需要調用A系統的功能接口,
在保持A不在改變的情況下,也就是登陸驗證,session儲存不變的情況下,B系統能處理前端使用者的請求。
在使用者登陸成功後,將已儲存的session的session-id回傳給B系統,然後B系統每次請求其他介面都帶session_id。 ############ A系統在session_start前加上session_id(session_id);############ 這樣B系統就能安全的呼叫A############ 這樣B系統就能安全的呼叫A###### #########相關專題推薦###:###php session### (包含圖文、影片、案例)######
以上是session的工作原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!