個人學習筆記——會話

  1. 服務器開啓session

  2. 客戶端通過瀏覽器訪問服務器,服務器會判斷請求頭信息中是否包含session_id,如果包含則去session文件存儲位置尋找對應的session文件,session文件不存在則創建;如果請求頭中不包含session_id,則會自動創建session文件,同時將session_id返回到服務器中,如果本地開啓cookie則session_id保存在cookie中

  3. cookie可以設置生存週期,默認是保存在內存中,關閉瀏覽器銷燬cookie,重新打開瀏覽器訪問服務器此時session_id不存在,就會重新創建session文件和session_id;可以設置cookie的生命週期,如果關閉瀏覽器時扔在生命週期內,則會將session_id保存到指定的cookie存放位置,下次打開瀏覽器會掃描是否有對應的cookie,如果有對應cookie,向指向服務器發送請求就可以得到session,(即自動登錄機制的實現方式)

  4. session_id是計算機自動生成的一個不易破解沒有規律的唯一值,用於做唯一標識;session文件存儲於服務器端,服務器端可以配置session的生命週期,到期之後會自動刪除失效;也可以程序控制刪除,例如登錄退出時unset(清空session文件內容)、destroy(刪除session文件)  (本人是PHP菜鳥,只能用PHP函數)

  5. session文件內容類似hashMap的散列形式,裏面存儲寫入的數據

  6. 可以在cookie中寫入一些值,setcookie(key, value, time, path, domain) 具體含義百度既可

  7. 會話機制針對http協議的無狀態產生(看資料都是這樣說,錯了勿噴  本人小白)

  8. 客戶端禁用cookie,可以將session_id綁定到url傳遞,服務器作爲url參數獲取,這是一個常見問題

  9. 由於session_id返回給客戶端,存儲在cookie中,可以被查看到,因此比如簡單的做法:複製session_id模擬請求服務器,這就是所謂的session劫持,因此,通常會說cookie是不安全的




    PS: 只是本人的學習筆記,如果有童鞋看到了可以起到幫助最好,如果有錯誤希望勿噴,只是粗淺的理解  本人PHP小菜鳥一枚  勿怪


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章