一、術語session
二、HTTP協(xié)議與狀態(tài)保持
三、理解cookie機制
四、理解session機制
五、理解javax.servlet.http.HttpSession
六、HttpSession常見問題
七、跨應用程序的session共享
八、總結

一、術語session

session,中文經(jīng)常翻譯為會話,其本來的含義是指有始有終的一系列動作/消息,比如打電話時從拿起電話撥號到掛斷電話這中間的一系列過程可以稱之為一個session。有時候我們可以看到這樣的話“在一個瀏覽器會話期間,…”,這里的會話一詞用的就是其本義,是指從一個瀏覽器窗口打開到關閉這個期間 。最混亂的是“用戶(客戶端)在一次會話期間”這樣一句話,它可能指用戶的一系列動作(一般情況下是同某個具體目的相關的一系列動作,比如從登錄到選購商品到結賬登出這樣一個網(wǎng)上購物的過程,有時候也被稱為一個transaction),然而有時候也可能僅僅是指一次連接,也有可能是指含義,其中的差別只能靠上下文來推斷。

然而當session一詞與網(wǎng)絡協(xié)議相關聯(lián)時,它又往往隱含了“面向連接”和/或“保持狀態(tài)”這樣兩個含義,“面向連接”指的是在通信雙方在通信之前要先建立一個通信的渠道,比如打電話,直到對方接了電話通信才能開始,與此相對的是寫信,在你把信發(fā)出去的時候你并不能確認對方的地址是否正確,通信渠道不一定能建立,但對發(fā)信人來說,通信已經(jīng)開始了。“保持狀態(tài)”則是指通信的一方能夠把一系列的消息關聯(lián)起來,使得消息之間可以互相依賴,比如一個服務員能夠認出再次光臨的老顧客并且記得上次這個顧客還欠店里一塊錢。這一類的例子有“一個TCPsession”或者“一個POP3session”。

而到了web服務器蓬勃發(fā)展的時代,session在web開發(fā)語境下的語義又有了新的擴展,它的含義是指一類用來在客戶端與服務器之間保持狀態(tài)的解決方案④。有時候session也用來指這種解決方案的存儲結構,如“把xxx保存在session里”。由于各種用于web開發(fā)的語言在一定程度上都提供了對這種解決方案的支持,所以在某種特定語言的語境下,session也被用來指代該語言的解決方案,比如經(jīng)常把Java里提供的javax.servlet.http.HttpSession簡稱為session。

鑒于這種混亂已不可改變,本文中session一詞的運用也會根據(jù)上下文有不同的含義,請大家注意分辨。
在本文中,使用中文“瀏覽器會話期間”來表達含義,使用“session機制”來表達含義,使用“session”表達含義,使用具體的“HttpSession”來表達含義

二、HTTP協(xié)議與狀態(tài)保持

HTTP是一種無狀態(tài)協(xié)議,也就是說,當一個客戶訪問服務器時,服務器不會保留客戶端的任何信息,因此,Web服務器會將同一個客戶的每次訪問都當作一次新的訪問。但有時需要服務器保留客戶端的信息,以識別同一個客戶的多次訪問,那又如何實現(xiàn)呢?更多關于云服務器,域名注冊,虛擬主機的問題,請訪問三五互聯(lián)官網(wǎng):www.shinetop.cn

贊(0)
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享網(wǎng)絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。郵箱:3140448839@qq.com。本站原創(chuàng)內容未經(jīng)允許不得轉載,或轉載時需注明出處:三五互聯(lián)知識庫 » Java Web學習總結(10)——Session詳解

登錄

找回密碼

注冊