程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP基礎教程:COOKIE AND SESSION

PHP基礎教程:COOKIE AND SESSION

編輯:關於PHP編程

首先要明白以下幾個基本知識:

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文件有過期時間

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved