按照REST架構(gòu),一個(gè)RESTful Web服務(wù)不應(yīng)該繼續(xù)服務(wù)器的客戶端的狀態(tài)。這種限制被稱為無(wú)狀態(tài)。它負(fù)責(zé)客戶以它的上下文傳遞給服務(wù)器,然后服務(wù)器可以存儲(chǔ)這樣的上下文,以處理客戶端的進(jìn)一步請(qǐng)求。例如,通過(guò)會(huì)話服務(wù)器維護(hù)標(biāo)識(shí)由客戶端傳遞會(huì)話標(biāo)識(shí)符。
RESTful Web服務(wù)應(yīng)遵守此限制。我們已經(jīng)看到了REST Web服務(wù) - 方法教程,該Web服務(wù)方法不存儲(chǔ)它們從調(diào)用的客戶端的任何信息。
考慮以下網(wǎng)址:
http://localhost:8080/UserManagement/rest/UserService/users/1
如果您使用的瀏覽器,使用基于Java的客戶端或使用postman,那么輸入上面的網(wǎng)址,結(jié)果永遠(yuǎn)是用戶XML ID為1,因?yàn)榉?wù)器沒(méi)有存儲(chǔ)有關(guān)客戶的任何信息。
<user> <id>1</id> <name>mahesh</name> <profession>1</profession> </user>
以下是無(wú)狀態(tài)的RESTful web服務(wù)的好處
Web服務(wù)可以獨(dú)立對(duì)待每一個(gè)方法的請(qǐng)求。
Web服務(wù)不需要維護(hù)客戶端之前的交互。它簡(jiǎn)化了應(yīng)用程序的設(shè)計(jì)。
由于HTTP本身是一個(gè)無(wú)狀態(tài)協(xié)議,RESTful Web服務(wù)無(wú)縫地與HTTP協(xié)議的工作。
以下是無(wú)狀態(tài)的RESTful web服務(wù)的缺點(diǎn)
Web服務(wù)需要得到每個(gè)請(qǐng)求的額外信息,然后解釋得到的情況下客戶端交互客戶端的狀態(tài)都被照應(yīng)。