登入功能背後的原理是甚麼?
recall:
- 瀏覽器發 Request 給 Google
- Google 跟資料庫存取資料
- 存取處理後,再發 response 給瀏覽器
- 瀏覽器再將頁面顯示出來
登入功能
- 瀏覽登入網頁,發送 request
- server 收到回應,回傳 response
- 瀏覽器解析 response,渲染出登入頁面
- 使用者填入帳密送出
- 瀏覽器發送第二次 request,request 帶有使用者的帳密
- server 去資料庫查詢比對是否有這組帳密
- 資料庫返回結果
- server 回傳 response 登入成功
- 瀏覽器解析 response,渲染出登入成功的頁面
登入完成,server 怎麼知道剛剛的 request 跟現在的是同一個人 ? 不太可能每次都將帳密帶著登入
會有一張 session 表格存在於伺服器,每個 session_id 會有相對應的內容,內容可能是存你的帳號。
此外,還有一個元素叫 cookie,cookie 是瀏覽器儲存資訊的地方,他特別的地方在於 server 可以要求瀏覽器設置 cookie,之後的每個 request 瀏覽器都會把相對應的 cookie 帶上來。
綜合 session and cookie
- 登入完成,sessionId = xwspokpoipwer, user = anna
- server 回傳 response,會要求瀏覽器在 cookie 內放入 xwspokpoipwer 這個 sessionId
- 瀏覽下個頁面,發送 request 給 server
- 瀏覽器帶上 cookie 裡的值 xwspokpoipwer
- server 利用這個值去查 session 表格,發現有資料
- server 確認這個人就是 anna