php個人總結 session和cookie

2021-08-16 18:15:36 字數 1381 閱讀 2135

1.cookie與session的關係

cookie和session的方案雖然分別屬於客戶端和服務端,但是服務端的session的實現對客戶端的cookie有依賴關係的;步驟大概如下:

1.服務端執行session機制

2.生成對應而唯一的session_id(通過對這個session_id的解析和處理,服務端可以找到,該session儲存的檔案;再從檔案中提取出session的資訊)

3.服務端會將這個session_id傳送給客戶端

客戶端接受到session_id,以cookie作為儲存的容器儲存起來 

4.客戶端在每次請求的時候都會帶這個session_id給服務端 

服務端自行解析session

注意:session儲存資訊的手段是多種的:快取,資料庫,檔案等;但是預設是檔案形式儲存。。。

2.建立 session和銷毀session的時機

建立session的時候會附帶著建立乙個cookie,它的maxage為-1,也就是說只能存在於記憶體中。當瀏覽器端禁用cookie時,這個cookie依然會被建立。

當瀏覽器提交的請求中有jsessionid引數或cookie報頭時,容器不再新建session,而只是找到先前的session進行關聯。這裡又分為兩種情況:

1)使用jsessionid。該值若能與現有的session對應,就不建立新的session,否則,仍然建立新的session。

2)使用cookie。該值若能與現有的session對應,也不建立新的session;但若沒有session與之對應(就如上面的重啟伺服器之後)容器會根據cookie資訊恢復這個與之對應的session,就好像是以前有過一樣。

3.session何時被銷毀?

當我們關閉瀏覽器,再開啟它,連線伺服器時,伺服器端會分配乙個新的session,也就是說會啟動乙個新的會話。那麼原來的session是不是被銷毀了呢?我做了個小實驗:

session_start();

//註冊session變數,並且賦值

$_session["username"] = "hello"

//輸出生成的session_id

echo session_id();

訪問頁面建立session,獲取session_id,關閉瀏覽器;

根據session_id建立session物件

$session_id = "qpk6onnn3husvotnke030ftcm4";

session_id($session_id);

session_start();

echo $_session["username"]; //結果取出session ,所以

PHP檔案操作個人總結

這段時間接觸了挺多檔案操作,沒有時間進行總結,現在有點空閒就根據自己的了解歸納一下流程吧。要在php中開啟乙個檔案,可以使用fopen 函式。這個時候我們還需要指定如何使用它,這就是檔案模式。從本質上,檔案模式可以告訴作業系統一種機制,這種機制可以決定如何處理來自其他人或指令碼的訪問請求,以及一種用...

cookie和session的個人簡單理解

瀏覽器 客戶端發起請求 伺服器響應 setcookie要求瀏覽器 客戶端生成乙個cookie 瀏覽器 客戶端儲存cookie,並在下次請求中在請求頭中傳送這個cookie 伺服器識別這個瀏覽器發來的cookie,證明是同一使用者 這個使用者請求相同的伺服器都會傳送這一cookie重複3 5步,伺服器...

session和cookie區別總結

cookie是由w3c組織提出,最早由netscape社群發展的一種機制 session和cookie有什麼區別?從隱私安全上比較 從有效期上比較從對伺服器的負擔比較 從瀏覽器的支援上比較 從跨網域名稱上比較 由於servlet是單例的,當多個使用者訪問servlet的時候,伺服器會為每個使用者建立...