吳金秀
摘要:Session用來保存客戶會(huì)話的信息,可以利用這個(gè)特性,在頁面之間實(shí)現(xiàn)信息的傳遞與共享,本文分析了Session的工作原理,并通過實(shí)例說明了Session在web開發(fā)中的應(yīng)用。
關(guān)鍵詞:Session;HTTP協(xié)議;客戶端;Web服務(wù)器
引言
Web應(yīng)用程序是基于HTTP協(xié)議的,HTTP協(xié)議是無狀態(tài)的,不能保存客戶的信息,當(dāng)用戶由一個(gè)頁面進(jìn)入下一個(gè)頁面時(shí),上一個(gè)頁面的數(shù)據(jù)將會(huì)丟失。很多web應(yīng)用程序中,如在線論壇系統(tǒng)中要求只有登錄成功的用戶才能發(fā)貼或回貼,當(dāng)用戶完成登錄操作時(shí)用Session記錄用戶信息,當(dāng)用戶發(fā)貼或回貼時(shí)檢查用戶登錄的信息。當(dāng)客戶端發(fā)出一個(gè)請(qǐng)求給web服務(wù)器后,服務(wù)器作出響應(yīng)的同時(shí)產(chǎn)生一個(gè)客戶端的會(huì)話并進(jìn)行維護(hù);當(dāng)客戶端通過無狀態(tài)HTTP協(xié)議再次連接到服務(wù)器時(shí),服務(wù)器根據(jù)客戶端提交的請(qǐng)求信息,將客戶關(guān)聯(lián)到某個(gè)會(huì)話上。asp.net中Session存儲(chǔ)在服務(wù)內(nèi)存,用戶是透明的。它可以保存任何對(duì)象。
一、Session的工作原理
每一個(gè)會(huì)話都有一個(gè)唯一SessionID屬性來標(biāo)識(shí),SessionID是一個(gè)由24個(gè)字符組成的隨機(jī)字符串。用戶每次提交頁面,瀏覽器都會(huì)把這個(gè)SessionID包含在HTTP頭中提交給Web服務(wù)器,這樣Web服務(wù)器就能區(qū)分當(dāng)前請(qǐng)求頁面的是哪一個(gè)客戶端。如果未提供任何SessionID值,則服務(wù)器將啟動(dòng)一個(gè)新的會(huì)話,并將該會(huì)話的SessionID值隨響應(yīng)一起發(fā)送到瀏覽器。
三、Session的應(yīng)用
電子商務(wù)系統(tǒng)中用Session實(shí)現(xiàn)購物車、購物籃功能。用戶選擇商品時(shí),需要記下商品的信息,同時(shí)允許用戶同時(shí)選擇多個(gè)相同或不同的商品,然后在購物車或購物籃頁面進(jìn)行顯示。
Session可以用來保存會(huì)話信息,在管理和維護(hù)上比較方便。在web開發(fā)中的Session的應(yīng)用也很多。對(duì)于企業(yè)級(jí)的應(yīng)用來說,于服務(wù)器的同步、服務(wù)器的穩(wěn)定性、可靠性都是有利的。(作者單位:湖北黃岡職業(yè)技術(shù)學(xué)院)
參考文獻(xiàn):
[1]ASP.NET里的Session詳細(xì)解釋[EB/OL]. http://www.68design.net/Development/Aspnet/Skills-AspNet/20911-1.html.
[2]ASP.NET中服務(wù)器端Session狀態(tài)的存儲(chǔ)[EB/OL]. http://localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245)/default.aspx.
[3]ASP.NET SESSION的使用及原理[EB/OL]. http://dotnet.chinaitlab.com/ASPNET/30847.html.