//
Session 工作原理
1、創(chuàng)建Session
當(dāng)用戶訪問到一個服務(wù)器,如果服務(wù)器啟用Session,服務(wù)器就會為該用戶創(chuàng)建一個SESSION,在創(chuàng)建這個SESSION的時候,服務(wù)器首先檢查這個用戶發(fā)來的請求里是否包含了一個SESSION ID,如果包含了一個SESSION ID則說明之前該用戶已經(jīng)登陸過并為此用戶創(chuàng)建過SESSION,那服務(wù)器就按照這個SESSION ID把這個SESSION在服務(wù)器的內(nèi)存中查找出來,如果客戶端請求里不包含有SESSION ID,則該客戶是新用戶,為該用戶端創(chuàng)建一個SESSION并生成一個與此SESSION相關(guān)的SESSION ID。這個SESSION ID是唯一的、不重復(fù)的、毫無規(guī)律的字符串,這個SESSION ID將被在本次響應(yīng)中返回到客戶端保存,而保存這個SESSION ID的正是COOKIE,這樣在交互過程中瀏覽器可以自動的按照規(guī)則把這個標(biāo)識發(fā)送給服務(wù)器。
2、使用Session
我們知道在IE中,我們可以在工具的Internet選項中把Cookie禁止,那么會不會出現(xiàn)把客戶端的Cookie禁止了,那么SESSIONID就無法再用了呢?其實是可以有其他機制在COOKIE被禁止時仍然能夠把Session id傳遞回服務(wù)器。
經(jīng)常被使用的一種技術(shù)叫做URL重寫,就是把Session id直接附加在URL路徑的后面一種是作為URL路徑的附加信息,表現(xiàn)形式為:
http://www.xxxs.com/xxx;jSession=KDigrbWnF6ZC8DrjCPrPPxA3vV647yGkQFHexYgNclSMhpiL6l8cvmVSssV2tSTL!-1617674918;
另一種是作為查詢字符串附加在URL后面,表現(xiàn)形式為:
http://www.xxxs/xxx?jSession=kTlnuSTMm8fPiX0AR8mQGcaumORnazng600MSj59j4KzYuCusTNfIlxKfqSliuEtMTDM-1617675235
還有一種就是表單隱藏字段。就是服務(wù)器會自動修改表單,添加一個隱藏字段,以便在表單提交時能夠把Session id傳遞回服務(wù)器。
Session作用
Session的根本作用就是在服務(wù)端存儲用戶和服務(wù)器會話的一些信息。典型的應(yīng)用有:
1、判斷用戶的登錄狀態(tài)。
2、商城購物車功能。
Session實例問題
現(xiàn)有系統(tǒng)A,B; 假設(shè)A系統(tǒng)是可以獨立運行的web系統(tǒng),即可以和瀏覽器直接處理session, B系統(tǒng)是基于mobile的,需要調(diào)用A系統(tǒng)的功能接口,
在保持A不改變的情況下,即登陸驗證,session存儲都不變的情況下,B系統(tǒng)能處理前端用戶的請求。
這里提供的方案是使用PHP實現(xiàn)
在用戶登陸成功后,將保存的session的session-id返回給B系統(tǒng),然后B系統(tǒng)每次請求其他接口都帶session_id。
?。料到y(tǒng)在session_start前加上session_id(session_id);
這樣B系統(tǒng)就能安全的調(diào)用A
云南然成科技有限公司是一家云南本土的軟件開發(fā)公司,公司成立于2015年初,2017年獲得云南省科技廳、省財政廳、省國稅局、地稅局等機構(gòu)認(rèn)定的高新技術(shù)企業(yè)。2021年審核中再次獲得高新技術(shù)企業(yè)認(rèn)定。公司定位于高端網(wǎng)站設(shè)計、系統(tǒng)開發(fā)、APP開發(fā)、微信公眾號、微信小程序開發(fā)。擁有多個軟著權(quán),公司先后為多家事業(yè)單位提供服務(wù),比如會澤文化館、宣威文化館、中科院昆明植物研究所等。其中中國科學(xué)院昆明植物研究所已經(jīng)進(jìn)行了長達(dá)8年的合作,并且還持續(xù)合作中!
然成科技一直堅持原創(chuàng)、獨立開發(fā),拒絕一切開源、模版化建站,歡迎咨詢!