Java Session

http://www.iteye.com/topic/10452#57430

http://gongmingwind.iteye.com/blog/587656


HTTP協議(http://www.w3.org/Protocols/)是“一次性單向”協議。 

服務端不能主動連接客戶端,只能被動等待並答覆客戶端請求。客戶端連接服務端,發出一個HTTP Request,服務端處理請求,並且返回一個HTTP Response給客戶端,本次HTTP Request-Response Cycle結束。 

我們看到,HTTP協議本身並不能支持服務端保存客戶端的狀態信息。於是,Web Server中引入了session的概念,用來保存客戶端的狀態信息。

...

從理論上來說,這3個部分(Request URL,Cookie Header, Message Body)都可以用來存放Session ID。由於Message Body方法必須需要一個包含Session ID的HTML Form,所以這種方法不通用。 
一般用來實現Session的方法有兩種: 
(1)URL重寫。 
Web Server在返回Response的時候,檢查頁面中所有的URL,包括所有的連接,和HTML Form的Action屬性,在這些URL後面加上“;jsessionid=XXX”。 
下一次,用戶訪問這個頁面中的URL。jsessionid就會傳回到Web Server。 
(2)Cookie。 
如果客戶端支持Cookie,Web Server在返回Response的時候,在Response的Header部分,加入一個“set-cookie: jsessionid=XXXX”header屬性,把jsessionid放在Cookie裏傳到客戶端。 
客戶端會把Cookie存放在本地文件裏,下一次訪問Web Server的時候,再把Cookie的信息放到HTTP Request的“Cookie”header屬性裏面,這樣jsessionid就隨着HTTP Request返回給Web Server。 

發佈了25 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章