我們在建立網站服務時,有兩種不同的web開發模式:
一、web應用程序(web application):web應用程序是透過http請求來存取web服務器的網頁,或執行服務端網頁技術的程序,例如:ASP,ASP.NET,JSP,PHP。
二、web服務(web services):透過通訊協定SOAP或RESTful api提供資料交換和工作分享,這也是一種web應用程序,只不過是透過web服務來執行。
web應用程序(web application)
web應用程序簡單來說就是一組網頁(包含html網頁,圖片和相關服務器網頁技術文檔)的集合,其主要功能是回應使用者的請求,並且與使用者進行互動。目前Internet擁有多種不同類型的web應用程序,如:網絡銀行,電子商務網站,搜索引擎,拍賣網站,論壇等。
基本上,web應用程序就是一種web基礎(web-based)的資訊處理系統,使用資訊處理模型建立的應用程序,分為資訊處理模型和資訊傳遞模型兩種。
資訊傳遞模型是傳統web網站,所有資訊內容都是使用html語言撰寫的靜態html網頁,我們可以直接使用網頁編輯工具或html語言來建立網站內容,如圖:
使用者在瀏覽器的網址欄輸入url網址后,透過http通訊協定取得web服務器的html網頁。資訊傳遞模型的web服務器只是負責存儲和傳遞html網頁,並不進行額外處理,一般來說,使用者只能閱讀網站提供的資料,並不能與網站進行互動。
資訊處理模型主要目的是建立互動的web網站內容的web網站內容,web服務器的角色不單純只是傳遞資料,而是一個完整資訊處理系統的執行平台,我們需要使用服務器端網頁技術(程序是在web服務器執行的網頁技術),例如:使用php技術建立的web應用程序,如下圖所示:
上述圖例的輸入部分,以php技術來說,就是html表單的欄位,例如:查詢圖書書號的欄位,在存儲部分最常使用的是資料庫,例如:網絡商店的圖書資料庫。上圖所示的是一般的處理過程,但因為現在的javascript和html5擁有存取本地資料庫和檔案的能力,現在的web應用程序並不一定需要有服務器,在瀏覽器也一樣可以使用客戶端網頁技術來執行資訊處理模型的web應用程序,如使用Web SQL Database,Local Storage和Session Storage存儲數據,用js計算處理數據等。
web服務(web services)
web服務是一種企業級的應用程序,可以透過Internet建立自動機制提供資料交換和工作分享等資源共享能力。web服務是使用簡單和公開標准的通訊協定,並且提供低成本軟件整合和資料分享能力。
web服務的基礎
web服務提供一組通用服務,能夠提供大量客戶端來同時使用,這是一組以xml標簽作為傳遞訊息的函數呼叫。客戶端通過http傳送函數呼叫給服務器,服務器用http將結果傳回客戶端,可以提供客戶端更多的彈性,因為只需要傳遞函數呼叫的訊息就可以取得所需要的資訊。
簡單來說,web服務提供一組通用的遠端函數呼叫(RPC,Remote Procedure Calls),可以讓客戶端使用函數呼叫來執行所需的服務。
web服務的應用程序架構
WEB服務的客戶端和服務器是使用SOAP(Simple Object Access Protocol)通訊協定來進行通訊,一種結合xml標簽訊息的通訊協定。web服務的應用程序架構如圖所示:
RESTful API
RESTful是一種源於www的web應用架構,常常被用來描述使用xml或json等簡單界面的web服務,而不是使用SOAP的傳統web服務,基本上符合REST原則的系統就稱為RESTful。RESTful API對比傳統的web服務來說是屬於一種輕量級的web服務,因為設計簡單,而且提供彈性的回應形態,例如:xml或json。
注:這是一本名為《跨平台Android iPhone程式開發 visual studio community cordova/phonegap jQuery Mobile》陳會安著書中的部分內容,經本人理解然后改掉了點內容,想要了解更多和了解原意請看書。