首先要明白以下幾個基本知識:
1,瀏覽網頁使用的是HTTP協議
2,HTTP協議是無狀態的
3,整個過程是使用者發出請求,伺服器接受請求,作出響應,中斷連線(無狀態,不記錄該串連記錄)
4,HTTP協議包含協議頭和訊息實體兩部分
5,Session在服務端,Cookie在用戶端
過程
1,使用者向伺服器發送一個url請求。(GET /index.php HTTP/1.1)
2,伺服器接受請求,在伺服器上尋找 index.php檔案
3,根據該請在伺服器端搜尋session_ID的檔案按 一般在伺服器的 %TEMP%檔案夾下 如windows C:\winnt\temp\下面建立一個如:sess_e12683c5301033a408419cc9df284f7b的檔案 (window2000)
並將一些SESSION值儲存在該檔案裡面
4,將處理結果返回給用戶端,並把該session_ID或者其它資訊放在響應的協議頭裡面(set-Cookie),具體資訊根據設定來確定,伺服器中斷連線
5,用戶端接收,瀏覽器將協議頭裡面的session_ID存放在用戶端的一個檔案裡(cookie)檔案
在windows下一般在 C:\Documents and Settings\使用者名稱\Local Settings\Temporary Internet Files下。
cookie的檔案名稱一般為
Cookie:使用者名稱@dommain
Cookie檔案的一般內容為:
BAIDUID Cookie名稱
25D4E67AC34F467A29DB9B8C85C4DEC5 Cookie值
baidu.com/ Cookie有效路徑
1024 安全性 1024和1536表示模指數(MODP)群演算法的位元
3577998080 Cookie有效日期
32067270 修改日期
1590083488 建立日期
29862897 建立者
6,用戶端第二次向伺服器發送請求,瀏覽器會將對應的cookie檔案裡面的值放在請求的協議頭裡面
7,服務接受協議頭,同時也接受了cookie的值,這樣伺服器就可以和已經儲存的session檔案進行驗證
說明
a,在上面的 3 步驟中,如果使用者還儲存其它的session值,這些值作為內容儲存到那個session檔案裡面
b,在上面的 4 步驟中,服務還可以向用戶端發送更多的cookie值
c,在上面的 5 步驟中,如果使用者的瀏覽器拒絕cookie,那麼有時候伺服器會將session_ID作為url後面的參數附帶,所以我們常常看見有的url上常常會有 PHPSESSID=******** 或者JSPSESSID=******之類的參數,如果瀏覽器接受cookie,也會將上面 b 中的更多參數放在cookie檔案裡面
d,在上面的 7 步驟中,伺服器會根據session_ID尋找對應的文session檔案,因此也可以根據該檔案的內容擷取先前儲存的其它的session值
e,在伺服器儲存的session檔案有時間限制
f,在用戶端儲存的cookie檔案有到期時間
http://www.bkjia.com/PHPjc/364286.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/364286.htmlTechArticle首先要明白以下幾個基本知識: 1,瀏覽網頁使用的是HTTP協議 2,HTTP協議是無狀態的 3,整個過程是使用者發出請求,伺服器接受請求,作出響...