一饿幅、Session作用
由于http協(xié)議是無狀態(tài)的隐解,所以服務(wù)器不能通過http去識別客戶端的狀態(tài)及其他信息,所以Web Server引入了Session概念m用來保存客戶端的狀態(tài)诫睬。
二煞茫、Session工作原理
客戶端第一次訪問服務(wù)器時,服務(wù)器創(chuàng)建Session保存下該客戶端狀態(tài)信息,并返回Session ID給客戶端续徽,客戶端在以后的每次請求時都會附帶Session ID蚓曼,服務(wù)器則可以通過Session ID識別出當(dāng)前客戶端。
三钦扭、如何實現(xiàn)
1纫版、URL重寫,服務(wù)器在每次回應(yīng)請求時客情,即返回response時其弊,檢查所有頁面中所有URL并在這些URL后附加;jsessionid=XXX, 下次用戶在訪問頁面中的URL時會自動附帶jsessionid
2、使用Cookie膀斋,如果客戶端支持Cookie梭伐,Web Server在返回response時可以在Header中使用set-cookie:session=XXX;客戶端會自動把cookie存到本地,在客戶端下次請求Web Server時會自動將cookie加入到Herder中
四仰担、Session創(chuàng)建時機
客戶端第一次訪問服務(wù)器時創(chuàng)建Session是一種比較寬泛的說法糊识,實際創(chuàng)建Session是在request.getSession()時才會去創(chuàng)建
五、總結(jié)
1摔蓝、http工作模式屬于"鏈接-請求-應(yīng)答-關(guān)閉鏈接"赂苗,是一種無狀態(tài)協(xié)議(超文本文檔傳輸協(xié)議)
2、Cookie是為了給http增加狀態(tài)追蹤而出現(xiàn)的贮尉,但并不是唯一手段
3拌滋、Session的作用范圍及生命周期由服務(wù)器設(shè)定