有一個模擬瀏覽器行爲的Java代碼。它與Tomcat服務器進行有狀態對話,例如:login,doSomething,註銷。在與Tomcat Web服務器進行對話期間,我應該檢查JSESSIONID是否更改?
當前的實現是這樣的:
- HTTP POST到 「登錄」 頁面,存儲的cookie返回(假設它是JSESSIONID = 9845)。
- HTTP POST到 「DoSomething的」 頁面,通存儲的cookie(JSESSIONID = 9845)與請求,做什麼用的響應頭(忽略進一步餅乾)
- HTTP GET到 「註銷」 頁面,通過存儲的cookie(JSESSIONID = 9845)與請求。
這工作正常。
但是我不知道這是否是安全的忽略響應報頭在步驟2中我應該期待的服務器會話期間改變JSESSIONID的值,還是沒有?
換句話說,如果在步驟2中該做什麼,服務器會在響應頭文件中返回Set-Cookie = [JSESSIONID = 9846]?
我能想象如下:
- 這不可能發生在現實生活,不值得檢查,當前的代碼是好的。
- 這標誌着一個嚴重的問題Tomcat服務器,值得一檢查,代碼應停止談話沒有進一步的呼叫
- 它是合法的,Tomcat服務器只是想用會話的新標識,所以我有以存儲新值,並將其用於隨後的調用。當前的代碼應該完成。
我猜,真正的瀏覽器從上面的3.選項,但也許1.和2.選項也可以接受?
真正的瀏覽器會做3.是否tomcat實際上會重新編號會話是一個不同的問題(我認爲這是不太可能的**,**除*會話失效*,即註銷)。 –