2012-02-01 59 views
4

在Servlets中,我們可以使用會話跟蹤功能。所以我想問問會議是維護到客戶端還是在服務器端。servlets中的會話在哪裏維護?

如果它在客戶方又在哪裏?
我可以在客戶端HTTPSession上創建會話嗎?

我發現一篇文章,告訴那對客戶方和服務器端的會話可以保持。

回答

4

這是將保持會話服務器。服務器負責允許會話跟蹤發生。客戶不需要明確地發送任何信息。由於客戶端可以發送保存在客戶端上的Cookie以及每個請求,因此服務器可能會使用Cookie進行sesssion跟蹤。

注意:Cookie只是實現會話跟蹤的一種方式。這也是最好的辦法

因此服務器需要使用Cookie作爲處理會話跟蹤的方式之一。

它還可以通過其他方式來完成:

URL重寫 - 應用/服務器應該追加會話ID在所有的URL /鏈接。當從客戶端調用這些會話時,會話將與URL一起進入服務器。

隱藏的表單域 - 的形式可含有與會話ID作爲字段值隱藏的輸入類型。在發佈表單時,會話標識隨表單數據一起提供。

+0

謝謝..如果我們從客戶端刪除cookie,然後會話獲取銷燬在服務器端維護。我是嗎? – user460920 2012-02-01 07:37:51

+0

是的,它會在超時值後被破壞。因爲,cookie在客戶端被刪除,客戶端將不能再發送cookie到服務器,所以,在服務器上創建的會話不再可訪問。 – 2012-02-01 07:59:09

+0

相似的http://stackoverflow.com/questions/9032330/whowebserver-or-developer-takes-care-of-maintaining-one-http-session-per-brows/9032483#9032483 – 2012-02-01 07:59:52

3

會話駐留在服務器端上的客戶端,我們有餅乾(或JSESSIONID或者隱藏表單域)到request與服務器的會話


它是如何maps地圖

當您提交第一次請求(從時間開始),服務器爲您提供一個cookie,其中包含響應時您的瀏覽器接受該cookie,它包含到期日期,內容(某些字符串)和域名,現在再次發送請求時到服務器您的瀏覽器將添加cooki E對於在報頭域,以便當服務器收到請求它認爲從報頭中的cookie,並在服務器上的內容用的sessionId映射


FYI

您也可以在其他應用程序會話(例如對等應用)

+0

OK thanks..can請您簡要解釋說,這是從通客戶端餅乾在服務器端的會話被發現..? – user460920 2012-02-01 04:05:51

+0

抱歉沒有得到您的意見...您也可以在其他應用程序中使用會話(例如對等應用程序)? – user460920 2012-02-01 04:10:31

+0

當然增加的細節破敗 – 2012-02-01 04:11:49