爲什麼我們說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. HTTPS有狀態還是無狀態?
- 4. 操作是無狀態的,但是控制器是無狀態的?
- 5. Hacklang是一種有狀態語言還是無狀態語言?
- 6. 無狀態的餅乾VS全狀態
- 7. JavaScript中無狀態的狀態
- 8. 具有無狀態的分層狀態
- 9. 無狀態與有狀態的bean
- 10. 基於PHP或PHP的Web框架是有狀態的還是無狀態的?
- 11. 這個Spring bean是無狀態的嗎?
- 12. BLL應該是無狀態的嗎?
- 13. REST是如何無狀態的?
- 14. 無狀態JButton
- 15. Passport.js無狀態
- 16. Django無狀態?
- 17. 無法解析從狀態「狀態」「」
- 18. 有狀態與無狀態Web服務
- 19. 有狀態和無狀態流處理
- 20. 無狀態自動推進狀態機
- 21. Keras - 有狀態vs無狀態LSTM
- 22. Admob狀態恢復爲無效狀態
- 23. Angular 2無狀態或有狀態?
- 24. 確定webapp是否爲無狀態
- 25. 無狀態後端是否安全?
- 26. 有狀態Web服務與(狀態Bean +無狀態WS)
- 27. 是WLST是有狀態的
- 28. 無法解析從狀態 '狀態2' '狀態1' 從一個狀態
- 29. 無狀態會話Bean中的實例變量 - 狀態是如何維護的?
- 30. Amf PHP無狀態?
@mike:太文字? – brian 2010-02-22 18:09:18
我評論的版本很短,基本上說「因爲他們不堅持狀態。」我正在刪除我的評論,並且還有一個優點。 – 2010-02-22 18:13:06
@mike:我的不好。我有同感。這就是我更新它的原因。 – brian 2010-02-22 18:15:37