Http 協議是無狀態協議,他是一個 Request -> 處理 -> Response。
意指每次發 Request 的動作都是各自獨立的,並不會紀錄之前執行過的動作。每次請求都不會紀錄上次執行的動作,所以 Session 機制就是讓我們可以判斷使用者是否已經登入過。
Session 機制算是一種概念,所以不同程式語言、有不同的實現方法。
簡單來說就是新訪客造訪網站時,會建立一個新 Session( 會話 ),Server 端就可以對應 Session 表找到此 Session ID,來辨識這是以前造訪過的訪客跟訪客資料。
而要實作 Session 機制可以有兩種作法:
user_certificate
的 tableuser_certificate
有無此 user
id
id
,同時並設一個帶著 id
的 cookie
PHP 已經包裝好了,所以可以直接用語言提供的 Session 方法
<?php
// 啟動 Session,並新增一個 user_id
session_start(); // => 記得放在最上面
$_SESSION['user_id'] = $user_id;
// login.php 查看
echo $_SESSION['user_id'];
// logout.php 刪除
session_destroy();
?>
參考資料:
有一點很重要的是,要搞清楚 Cookie 在其中扮演的角色,只是因為 Cookie 可以儲存在瀏覽器裡,剛好方便實作此 Session 機制。
所以就算沒有 Cookie,我們也是可以把 Session ID 存在 Server 或 DB 裡面。
參考資料:
( 以上內容大部分是 程式導師實驗計畫第三期 的學習筆記,如有錯誤歡迎糾正,非常感謝 🤓 )
Written on June 26th, 2019 by Yakim shu