爲什麼我們說Web服務是無狀態的?Webservices是無狀態的?
回答
它們不會在來自客戶端的請求之間持續任何狀態。即服務不知道也不關心後續請求來自已經/還沒有做出先前請求的客戶端。基本上,它是一個'給我這個信息,忘了我',這使得客戶有責任維持任何狀態。
請求是相互獨立的。
因爲HTTP是無狀態的。在客戶端請求被服務器完成之後,沒有信息被存儲用於未來的事務。
因爲Web服務基於HTTP,這是一種無狀態協議。
引用wikipedia:
無狀態服務器是一個服務器,它 將每個請求作爲一個獨立的事務 即無關於任何先前 請求。
即,每個請求與前一個請求是獨立的:即使我們使用一些「技巧」(例如cookie)來保留請求之間的某些狀態,但這不是協議定義的內容。
無狀態協議和無狀態Web服務之間有很大的區別。應用程序可以是有狀態的(使用「技巧」,如您所述),而底層協議是無狀態的。另外,Web服務不一定意味着HTTP。例如,SOAP可以作爲傳輸層使用SMTP。 – 2010-02-22 19:16:25
我會毫不猶豫地將SMTP SOAP服務稱爲「Web服務」。有很多類型的服務,但對我來說,Web服務= HTTP或HTTPS。 SMTP在網絡之前。所以我認爲帕斯卡的相關性很好。 – codenheim 2014-05-14 20:44:18
Web服務的概念是建模RPC(遠程過程調用)又名一個函數。因此你不需要使用會話。此外,無狀態的想法來自於將Web服務器擴展到服務器場的需求,從而實現更高的容量。
但是,使用狀態的選擇取決於技術和開發人員。沒有什麼可以阻止您創建ASP.Net Web服務並在方法定義中設置「EnableSession = True」。
這在一些基本的身份驗證方案中很有用,例如本土表單身份驗證或爲短期「工作流程」提供自動關聯。 (但我強烈建議您考慮更現代的技術將提供更高級別的安全性和性能)。
- 1. JBossWS&無狀態WebServices,OutFaultInterceptor被忽略
- 2. web的含義是無狀態的,http是無狀態協議?
- 3. 無狀態的餅乾VS全狀態
- 4. 具有無狀態的分層狀態
- 5. 基於PHP或PHP的Web框架是有狀態的還是無狀態的?
- 6. 這個Spring bean是無狀態的嗎?
- 7. BLL應該是無狀態的嗎?
- 8. Passport.js無狀態
- 9. Django無狀態?
- 10. Angular 2無狀態或有狀態?
- 11. 有狀態與無狀態Web服務
- 12. 有狀態和無狀態流處理
- 13. 無法解析從狀態「狀態」「」
- 14. Keras - 有狀態vs無狀態LSTM
- 15. 確定webapp是否爲無狀態
- 16. 什麼是無狀態類(在asp.net中)?
- 17. 有狀態Web服務與(狀態Bean +無狀態WS)
- 18. 無法解析從狀態 '狀態2' '狀態1' 從一個狀態
- 19. 是WLST是有狀態的
- 20. Admob狀態無效
- 21. Amf PHP無狀態?
- 22. GraphQL無狀態嗎?
- 23. 子狀態不是從父狀態
- 24. Spring的EJB無狀態bean
- 25. 無效的查看狀態
- 26. 無狀態會話Bean vs無狀態Singleton
- 27. REST在實踐中是否真的是無狀態的?
- 28. 實用程序/助手無狀態靜態類vs無狀態非靜態類
- 29. Wicket:無狀態頁面中的無狀態AJAX行爲,無序列化
- 30. Ruby中的動態狀態機?狀態機必須是類嗎?
@mike:太文字? – brian 2010-02-22 18:09:18
我評論的版本很短,基本上說「因爲他們不堅持狀態。」我正在刪除我的評論,並且還有一個優點。 – 2010-02-22 18:13:06
@mike:我的不好。我有同感。這就是我更新它的原因。 – brian 2010-02-22 18:15:37