WebAPI 和 webservice的區別

WebAPI 和 WebService的區別

webapi用的是http協議,webservice用的是soap協議
webapi無狀態,相對webservice更輕量級。webapi支持如get,post等http操作

http soap關係

http:是一個客戶端和服務器端請求和應答的標準(TCP)。http協議其目的是爲了提供一種發佈和接收htttp頁面的方法

一http協議的客戶端與服務器的交互:由HTTP客戶端發起一個請求,建立一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器則在那個端口監聽客戶端發送過來的請求。一旦收到請求,服務器(向客戶端)發回一個狀態行,比如”HTTP/1.1 200 OK”,和(響應的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。

soap 協議:它描述了一種在分散或分佈式的環境中如何交換信息的輕量級協議。soap在http協議的基礎上,一個基於XML的協議。

不同:都是底層的通信協議,請求包的格式不同而已,soap包是XML格式,http純文本格式。

關係:SOAP是個通信協議, SOAP在HTTP協議的基礎上,把編寫成XML的REQUEST參數, 放在HTTP BODY上提交個WEB SERVICE服務器(SERVLET,ASP什麼的) 處理完成後,結果也寫成XML作爲RESPONSE送回用戶端, 爲了使用戶端和WEB SERVICE可以相互對應,可以使用WSDL作爲這種通信方式的描述文件,利用WSDL工具可以自動生成WS和用戶端的框架文件,SOAP具備把複雜對象序列化捆綁到XML裏去的能力。
  

WCF和WEB API我該選擇哪個?
  1、當你想創建一個支持消息、消息隊列、雙工通信的服務時,你應該選擇WCF
  2、當你想創建一個服務,可以用更快速的傳輸通道時,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他傳輸通道不可用的時候也可以支持HTTP。
  3、當你想創建一個基於HTTP的面向資源的服務並且可以使用HTTP的全部特徵時(比如URIs、request/response頭,緩存,版本控制,多種內容格式),你應該選擇Web API
  4、當你想讓你的服務用於瀏覽器、手機、iPhone和平板電腦時,你應該選擇Web API

SOAP:Simple Object Access Protocol
簡單對象訪問協議(SOAP)是一種輕量的、簡單的、基於 XML 的協議,它被設計成在 WEB 上交換結構化的和固化的信息。 SOAP 可以和現存的許多因特網協議和格式結合使用,包括超文本傳輸協議( HTTP),簡單郵件傳輸協議(SMTP),多用途網際郵件擴充協議(MIME)。它還支持從消息系統到遠程過程調用(RPC)等大量的應用程序。

HTTP協議: 應用層
TCP協議 : 傳輸層

HTTP協議詳解之響應篇

在接收和解釋請求消息後,服務器返回一個HTTP響應消息。

HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文
1、狀態行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服務器HTTP協議的版本;Status-Code表示服務器發回的響應狀態代碼;Reason-Phrase表示狀態代碼的文本描述。
狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
1xx:指示信息–表示請求已接收,繼續處理
2xx:成功–表示請求已被成功接收、理解、接受
3xx:重定向–要完成請求必須進行更進一步的操作
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現
5xx:服務器端錯誤–服務器未能實現合法的請求
常見狀態代碼、狀態描述、說明:
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden //服務器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後可能恢復正常
eg:HTTP/1.1 200 OK (CRLF)

2、響應報頭後述

3、響應正文就是服務器返回的資源的內容

http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章