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的時候,伺服器會為每個使用者建立...