2013-12-21 95 views
2

我想了解更多關於JAVA web開發的信息。我主要關注於嘗試瞭解用戶輸入的數據(可能通過填寫多頁表單的過程)是如何隨着用戶每頁移動而進行管理的。在瀏覽器中將數據存儲爲瀏覽器與會話

從我收集的內容中,可以將數據存儲在服務器端的會話中。我也在學習存儲在瀏覽器中的cookies。是否有一個通用規則用於確定應將數據存儲在cookie中,還是將數據存儲在會話中(session.setAttribute),還是這些完全不同的概念?

謝謝

回答

2

會話/ cookies的基礎知識就是這樣。

會話通常是服務器存儲有關用戶數據的一種方式。這可以通過各種方式從內存,文件到數據庫完成。此會話可供您存儲幾乎任何用戶在網站周圍彈跳時所需的任何內容。它被分配了一個ID(會話ID),您通常不需要擔心太多。在大多數Web語言中,您可以輕鬆訪問具有某些功能的用戶會話,而無需處理ID。

現在,因爲網絡是無狀態的 - 意味着真的沒有辦法知道訪問頁面A的用戶和訪問頁面B的用戶是一樣的,那麼我們要確保用戶攜帶他們的會話ID 。這可以通過多種方式完成,但最常見的方法是使用會話cookie,它是由服務器自動設置的特殊cookie,僅用於傳遞會話。它也可以在URL中傳遞(我確定你已經看到了諸如index.php?sessid = 01223 ..之類的東西)以及標題等等。

當大多數人談論將信息添加到cookie時,他們並不是在討論會話cookie,而是在談論您專門設置的自定義cookie。您希望這樣做的唯一原因是,如果您需要存儲超出會話生命期的信息(當瀏覽器關閉時結束)。一個很好的例子就是很多網站的「記住我」功能。

所以使用會話,除非你需要持續很長時間。

1

是的。實際上有一些規則。首先,Cookie數據由瀏覽器在每次請求時發送;會話數據保存在服務器上(並且不會重發每個請求)。但是,通常會話ID與coookie一起使用。這使服務器能夠識別客戶端。