在 Web 開發中,用戶註冊與登錄是最基礎也最關鍵的功能模塊。理解其背後的請求流程,有助於構建安全、高效的認證系統。
當用戶在註冊頁面填寫信息並點擊提交時,瀏覽器會將表單數據(通常為 username、password 等字段)封裝成 HTTP 請求發送給服務器。服務器接收請求後,會對數據進行校驗(如用戶名是否已存在、密碼強度等),通過後將敏感信息(特別是密碼)進行哈希加密,最後將處理後的數據插入數據庫的用戶表中。此時註冊流程宣告結束,服務器返回成功響應。
登錄時,用戶同樣提交表單,服務器根據用戶名在數據庫中查找對應記錄。若找到,則將用戶輸入的密碼經過相同哈希算法加密後,與數據庫中存儲的密文比對。比對成功,服務器會為該用戶創建會話,並生成一個唯一的 Session ID,通常通過 Set-Cookie 標頭將其發送給瀏覽器保存。後續請求攜帶此 Cookie,服務器即可識別用戶身份。
Cookie 是存儲在瀏覽器端的小型文本數據。在「記住密碼」或「自動登錄」場景下,服務器會將加密後的用戶標識(如用戶 ID、Token)寫入 Cookie,並設置較長的過期時間。用戶下次訪問時,瀏覽器自動攜帶該 Cookie,服務器驗證有效後直接恢復登錄狀態,無需用戶再次輸入賬號密碼,極大提升了用戶體驗。
掌握這套流程,是通往全棧開發的必經之路。建議動手實現一個簡單的 Demo,體會請求與響應的細節。