2010-05-12 46 views
6

我想了解授權,cookies,用戶登錄,會話的邏輯..你知道任何解釋和教我的信息來源。如果它能舉出任何例子,那就太好了。我主要使用php,jsp,但如果您給出與其他語言相關的答案,則不會有任何問題。想了解授權,cookies,用戶登錄,會話

回答

9

cookie主要用於在特定域和/或路徑上的請求之間維護客戶端的某些狀態。會話主要用於在特定域和/或路徑上的請求之間維護服務器端的某些狀態。

會話通常由cookie支持。在PHP中,它是名稱爲PHPSESSID的cookie,而在JSP中,它是名稱爲JSESSIONID的cookie。兩者都包含一個長而獨特的自動化值。

服務器端在cookie值和內存中所有連接的會話對象之間具有映射關係。在每個請求中,它都會檢查請求標頭中的cookie值,並使用cookie值作爲關鍵字從映射中揭示附加的會話對象。在每個響應中,它將cookie值寫入響應頭。客戶端又將其返回到後續請求的頭部,直到cookie過期。

關於授權/登錄,您可以將已登錄的User對象放在服務器端會話中,並檢查每個請求是否存在並進行相應處理。註銷時,您只需從會話中刪除User對象或使會話無效。在PHP中,您可以通過$_SESSION和通過HttpServletRequest#getSession()以Java/JSP訪問會話。

原理在所有其他網絡編程語言中都是相同的。

+1

非常清楚地解釋@BalusC。關於登錄/註銷,通常建議不要在會話中放置對象(模型),因爲這會導致難以發現錯誤。因此,在您的示例中,不是存儲用戶對象,而是存儲用戶標識,並從中查找用戶。 – berto77 2014-01-03 17:19:00