狀態(tài)服務(wù)器與無狀態(tài)服務(wù)器(要點)
狀態(tài)請求
對服務(wù)器程序來說,究竟是有狀態(tài)服務(wù),還是無狀態(tài)服務(wù),其判斷依舊是指兩個來自相同發(fā)起者的請求在服務(wù)器端是否具備上下文關(guān)系。如果是狀態(tài)化請求,那么服務(wù)器端一般都要保存請求的相關(guān)信息,每個請求可以默認地使用以前的請求信息。而對于無狀態(tài)請求,服務(wù)器端所能夠處理的過程必須全部來自于請求所攜帶的信息,以及其他服務(wù)器端自身所保存的、并且可以被所有請求所使用的公共信息。
狀態(tài)服務(wù)器
如果是狀態(tài)化請求,那么服務(wù)端一般需要保存請求的相關(guān)信息,每個請求可以默認地使用以前的請求信息。
狀態(tài)服務(wù)器具有以下特點:
保存客戶請求的數(shù)據(jù)(狀態(tài))服務(wù)端容易對客戶狀態(tài)進行管理服務(wù)端并不要求每次客戶請求都攜帶額外的狀態(tài)數(shù)據(jù)無狀態(tài)服務(wù)器
無狀態(tài)服務(wù)器處理的客戶信息必須全部來自于請求所攜帶的信息以及其他服務(wù)器自身所保存的、并且可以被所有請求所使用的公共信息。
無狀態(tài)服務(wù)器具有以下特點:
并不保存客戶請求的數(shù)據(jù)(狀態(tài))客戶在請求時需要攜帶額外的狀態(tài)數(shù)據(jù)無狀態(tài)服務(wù)器更加健壯,重啟服務(wù)器不會丟失狀態(tài)信息,這使得維護和擴容更加簡單無狀態(tài)的服務(wù)器程序,最著名的就是WEB服務(wù)器。每次HTTP請求和以前都沒有啥關(guān)系,只是獲取目標URI。得到目標內(nèi)容之后,這次連接就被殺死,沒有任何痕跡。在后來的發(fā)展進程中,逐漸在無狀態(tài)化的過程中,加入狀態(tài)化的信息,比如COOKIE。服務(wù)端在響應(yīng)客戶端的請求的時候,會向客戶端推送一個COOKIE,這個COOKIE記錄服務(wù)端上面的一些信息。客戶端在后續(xù)的請求中,可以攜帶這個COOKIE,服務(wù)端可以根據(jù)這個COOKIE判斷這個請求的上下文關(guān)系。COOKIE的存在,是無狀態(tài)化向狀態(tài)化的一個過渡手段,他通過外部擴展手段,COOKIE來維護上下文關(guān)系。
狀態(tài)化的服務(wù)器有更廣闊的應(yīng)用范圍,比如MSN、網(wǎng)絡(luò)游戲等服務(wù)器。他在服務(wù)端維護每個連接的狀態(tài)信息,服務(wù)端在接收到每個連接的發(fā)送的請求時,可以從本地存儲的信息來重現(xiàn)上下文關(guān)系。這樣,客戶端可以很容易使用缺省的信息,服務(wù)端也可以很容易地進行狀態(tài)管理。比如說,當一個用戶登錄后,服務(wù)端可以根據(jù)用戶名獲取他的生日等先前的注冊信息;而且在后續(xù)的處理中,服務(wù)端也很容易找到這個用戶的歷史信息。
狀態(tài)化服務(wù)器在功能實現(xiàn)方面具有更加強大的優(yōu)勢,但由于他需要維護大量的信息和狀態(tài),在性能方面要稍遜于無狀態(tài)服務(wù)器。無狀態(tài)服務(wù)器在處理簡單服務(wù)方面有優(yōu)勢,但復雜功能方面有很多弊端,比如,用無狀態(tài)服務(wù)器來實現(xiàn)即時通訊服務(wù)器,將會是場惡夢。
Tags:狀態(tài)請求,狀態(tài)服務(wù)器與無狀態(tài)服務(wù)器(要點)
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信