主流通訊協定介紹(RPC、SOAP、REST)

Remote Procedure Call (RPC)

起源於1976年,允許Client遠端呼叫Server的子程式,然後將執行結果返回給Client;當時的傳輸資料常使用二進制格式,為了統一資料傳輸格式,隨後出現了XML-RPC, XML作為資料交換語言的RPC機制。

Simple Object Access Protocol (SOAP)

起源於1998年,由於RPC經常被Firewall及Proxy Server阻擋,為解決兼容及安全性問題,採用HTTP(起源於1989)是更好的方法,SOAP還提供了一套標準方法讓程式間可以互相通信。可以簡單把SOAP當作RPC+XML+HTTP(POST only)+有狀態的通信方法。

Representational State Transfer (REST/RESTful)

起源於2000年,由於SOAP過於複雜且依賴狀態,REST提倡使用標準的HTTP中的四種動作GET、PUT、POST及DELETE,以及Uniform Resource Identifier (URI)來指定資源,降低開發的複雜性。可以簡單把REST當作PRC+XML+HTTP(GET,PUT,POST,DELETE)+URI+無狀態的通信方法。

發展趨勢

REST風格相比XML-RPC及SOAP更加簡潔易用,而JSON資料交換語言相較XML更加輕量,目前大多數的Web Service都採用REST+JSON作為傳輸方法。