2 回答

TA貢獻1886條經(jīng)驗 獲得超2個贊
session:在計算機中,尤其是在網(wǎng)絡(luò)應(yīng)用中,稱為“會話”。
session直接翻譯成中文比較困難,一般都譯成時域。在計算機專業(yè)術(shù)語中,session是指一個終端用戶與交互系統(tǒng)進行通信的時間間隔,通常指從注冊進入系統(tǒng)到注銷退出系統(tǒng)之間所經(jīng)過的時間。
具體到web中的session指的就是用戶在瀏覽某個網(wǎng)站時,從進入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過的這段時間,也就是用戶瀏覽這個網(wǎng)站所花費的時間。因此從上述的定義中我們可以看到,session實際上是一個特定的時間概念。
需要注意的是,一個session的概念需要包括特定的客戶端,特定的服務(wù)器端以及不中斷的操作時間。a用戶和c服務(wù)器建立連接時所處的session同b用戶和c服務(wù)器中建立連接時所處的sessions是兩個不同的session。
那什么是session的解決方案呢?我們知道,用戶訪問一個網(wǎng)站時往往需要瀏覽許多網(wǎng)頁。對于一個通過php構(gòu)筑的網(wǎng)站來說,用戶在訪問的過程中需要執(zhí)行許多的php腳本。然而由于http協(xié)議自身的特點,用戶每執(zhí)行一個php腳本都需要和web服務(wù)器重新建立連接。
又由于無狀態(tài)記憶的特點,此次連接無法得到上次連接的狀態(tài)。這樣,用戶在一個php腳本中對一個變量進行了賦值操作,而在另外一個php腳本中卻無法得到這個變量的值。例如,用戶在負責(zé)登錄的php腳本中設(shè)置了$user="wind",卻無法在另一個php腳本中通過調(diào)用$user來獲得“wind”這個值。也就是說,在php中無法設(shè)置全局變量。每個php腳本中所定義的變量都是只在這個腳本內(nèi)有效的局部變量。
session解決方案,就是要提供在php腳本中定義全局變量的方法,使得這個全局變量在同一個session中對于所有的php腳本都有效。上面我們提到了,session不是一個簡單的時間概念,一個session中還包括了特定的用戶和服務(wù)器。因此更詳細地講,在一個session定義的全局變量的作用范圍,是指這個session所對應(yīng)的用戶所訪問的所有php。
例如a用戶通過session定義了一個全局變量$user=“wind”中,而b用戶通過session定義的全局變量$user=“jane”。那么在a用戶所訪問的php腳本中,$user的值就是wind。

TA貢獻1777條經(jīng)驗 獲得超10個贊
Session:在計算機中,尤其是在網(wǎng)絡(luò)應(yīng)用中,稱為“會話控制”。
Session直接翻譯成中文比較困難,一般都譯成時域。
在計算機專業(yè)術(shù)語中,Session是指一個終端用戶與交互系統(tǒng)進行通信的時間間隔,通常指從注冊進入系統(tǒng)到注銷退出系統(tǒng)之間所經(jīng)過的時間。
以及如果需要的話,可能還有一定的操作空間。
具體到Web中的Session指的就是用戶在瀏覽某個網(wǎng)站時,從進入網(wǎng)站到關(guān)閉這個網(wǎng)站所經(jīng)過的這段時間,也就是用戶瀏覽這個網(wǎng)站所花費的時間。
session的工作原理
?。?)當(dāng)一個session第一次被啟用時,一個唯一的標識被存儲于本地的cookie中。
(2)首先使用session_start()函數(shù),PHP從session倉庫中加載已經(jīng)存儲的session變量。
?。?)當(dāng)執(zhí)行PHP腳本時,通過使用session_register()函數(shù)注冊session變量。
?。?)當(dāng)PHP腳本執(zhí)行結(jié)束時,未被銷毀的session變量會被自動保存在本地一定路徑下的session庫中,這個路徑可以通過php.ini文件中的session.save_path指定,下次瀏覽網(wǎng)頁時可以加載使用。
- 2 回答
- 0 關(guān)注
- 831 瀏覽
添加回答
舉報