Web 服務 - 面試問題



尊敬的讀者,這些Web 服務面試問題是專門為了讓您熟悉在 Web 服務主題面試中可能遇到的問題型別而設計的。根據我的經驗,優秀的面試官很少會預先計劃好要問哪些具體問題,通常問題會從該主題的一些基本概念開始,然後根據後續討論和您的回答繼續深入。

Web 服務是基於開放標準(XML、SOAP、HTTP 等)的 Web 應用程式,它們與其他 Web 應用程式互動以交換資料。Web 服務可以將您現有的應用程式轉換為 Web 應用程式。

以下是 Web 服務的特性:

  • 它可透過網際網路或私有(內網)網路訪問。

  • 它使用標準化的 XML 訊息系統。

  • 它不依賴於任何特定的作業系統或程式語言。

  • 它透過通用的 XML 語法進行自描述。

  • 它可以透過簡單的查詢機制被發現。

基本的 Web 服務平臺是 XML + HTTP。所有標準的 Web 服務都使用以下元件:

  • SOAP(簡單物件訪問協議)

  • UDDI(通用描述、發現和整合)

  • WSDL(Web 服務描述語言)

Web 服務透過使用開放標準(例如 HTML、XML、WSDL 和 SOAP)實現各種應用程式之間的通訊。

您可以在 Solaris 上構建一個基於 Java 的 Web 服務,該服務可從執行在 Windows 上的 Visual Basic 程式訪問。

您還可以使用 C# 在 Windows 上構建新的 Web 服務,這些服務可以從基於 JavaServer Pages (JSP) 並執行在 Linux 上的 Web 應用程式呼叫。

Web 服務藉助 XML 來標記資料和格式化資料。

Web 服務藉助 SOAP 來傳輸訊息。

Web 服務藉助 WSDL 來描述服務的可用性。

以下是使用 Web 服務的好處:

  • 公開網路上的現有功能 - Web 服務允許您在網路上公開現有程式碼的功能。一旦在網路上公開,其他應用程式就可以使用您的程式的功能。

  • 互操作性 - Web 服務允許各種應用程式相互通訊,並在它們之間共享資料和服務。

  • 標準化協議 - Web 服務使用標準化的行業標準協議進行通訊。所有四個層次(服務傳輸、XML 訊息、服務描述和服務發現層)都在 Web 服務協議棧中使用定義良好的協議。

  • 低通訊成本 - Web 服務使用 HTTP 上的 SOAP 協議,因此您可以使用現有的低成本網際網路來實現 Web 服務。

Web 服務允許各種應用程式相互通訊,並在它們之間共享資料和服務。其他應用程式也可以使用 Web 服務。例如,VB 或 .NET 應用程式可以與 Java Web 服務通訊,反之亦然。Web 服務用於使應用程式與平臺和技術無關。

Web 服務的使用者不會直接繫結到該 Web 服務。Web 服務介面可以隨著時間的推移而改變,而不會影響客戶端與服務互動的能力。緊密耦合的系統意味著客戶端和伺服器邏輯緊密地聯絡在一起,這意味著如果一個介面發生變化,另一個介面也必須更新。採用鬆散耦合架構往往使軟體系統更易於管理,並允許不同系統之間更簡單的整合。

Web 服務允許客戶端使用基於 XML 的協議呼叫遠端物件上的過程、函式和方法。遠端過程公開了 Web 服務必須支援的輸入和輸出引數。

在過去的幾年裡,透過 Enterprise JavaBeans (EJB) 和 .NET 元件進行元件開發已日益成為架構和企業部署的一部分。這兩種技術都是分散式的,並且可以透過各種 RPC 機制訪問。

Web 服務透過提供自身的服務(相當於傳統元件的服務)或將傳入的呼叫轉換為 EJB 或 .NET 元件的呼叫來支援 RPC。

Web 服務具有以下特殊行為特徵:

  • 基於 XML - Web 服務在資料表示和資料傳輸層使用 XML。

  • 鬆散耦合 - Web 服務的使用者不會直接繫結到該 Web 服務。

  • 粗粒度 - 業務及其公開的介面應該是粗粒度的。Web 服務技術提供了一種定義粗粒度服務以訪問適當數量的業務邏輯的自然方法。

  • 能夠同步或非同步 - 非同步客戶端在稍後檢索其結果,而同步客戶端在服務完成操作時接收其結果。非同步能力是實現鬆散耦合系統的關鍵因素。

  • 支援遠端過程呼叫 (RPC) - Web 服務透過提供自身的服務(相當於傳統元件的服務)或將傳入的呼叫轉換為 EJB 或 .NET 元件的呼叫來支援 RPC。

  • 支援文件交換 - Web 服務支援文件的透明交換,以促進業務整合。

使用 XML 消除了任何網路、作業系統或平臺繫結。因此,基於 Web 服務的應用程式在其核心級別是高度互操作的應用程式。

Web 服務介面可以隨著時間的推移而改變,而不會影響客戶端與服務互動的能力。緊密耦合的系統意味著客戶端和伺服器邏輯緊密地聯絡在一起,這意味著如果一個介面發生變化,另一個介面也必須更新。採用鬆散耦合架構往往使軟體系統更易於管理,並允許不同系統之間更簡單的整合。

同步性是指客戶端與服務執行的繫結。在同步呼叫中,客戶端阻塞並等待服務完成其操作後再繼續。非同步操作允許客戶端呼叫服務然後執行其他函式。

Web 服務架構中有三個主要角色:

  • 服務提供商

  • 服務請求者

  • 服務註冊中心

這是 Web 服務的提供者。服務提供商實現服務並使其在網際網路上可用。

這是任何 Web 服務的使用者。請求者透過開啟網路連線併發送 XML 請求來利用現有的 Web 服務。

這是一個邏輯上集中的服務目錄。註冊中心提供了一箇中心位置,開發人員可以在其中釋出新服務或查詢現有服務。因此,它充當公司及其服務的集中清算中心。

Web 服務協議棧仍在發展中,但目前有四個主要層:

  • 服務傳輸

  • XML 訊息

  • 服務描述

  • 服務發現

此層負責在應用程式之間傳輸訊息。目前,此層包括超文字傳輸協議 (HTTP)、簡單郵件傳輸協議 (SMTP)、檔案傳輸協議 (FTP) 和較新的協議,例如塊可擴充套件交換協議 (BEEP)。

此層負責以通用的 XML 格式編碼訊息,以便可以在任一端理解訊息。目前,此層包括 XML-RPC 和 SOAP。

A. 此層負責描述特定 Web 服務的公共介面。目前,服務描述是透過 Web 服務描述語言 (WSDL) 處理的。

此層負責將服務集中到一個公共註冊中心,並提供簡單的釋出/查詢功能。目前,服務發現是透過通用描述、發現和整合 (UDDI) 處理的。

HTTP 代表超文字傳輸協議。

目前,HTTP 是服務傳輸最流行的選擇。HTTP 簡單、穩定且廣泛部署。此外,大多數防火牆允許 HTTP 流量。這允許 XML-RPC 或 SOAP 訊息偽裝成 HTTP 訊息。

BEEP 代表塊可擴充套件交換協議。

這是 HTTP 的一個有前景的替代方案。BEEP 是一個新的網際網路工程任務組 (IETF) 框架,用於構建新的協議。BEEP 直接疊加在 TCP 上,幷包含許多內建功能,包括初始握手協議、身份驗證、安全性和錯誤處理。使用 BEEP,可以為各種應用程式建立新的協議,包括即時訊息、檔案傳輸、內容聯合和網路管理。

XML-RPC 是一個簡單的協議,它使用 XML 訊息執行 RPC。

請求以 XML 編碼並透過 HTTP POST 傳送。

XML 響應嵌入在 HTTP 響應的主體中。

以下是 XML-RPC 的特性:

  • XML-RPC 是一個簡單的協議,它使用 XML 訊息執行 RPC。

  • 請求以 XML 編碼並透過 HTTP POST 傳送。

  • XML 響應嵌入在 HTTP 響應的主體中。

  • XML-RPC 與平臺無關。

  • XML-RPC 允許不同的應用程式進行通訊。

  • Java 客戶端可以與 Perl 伺服器進行 XML-RPC 通訊。

  • XML-RPC 是開始使用 Web 服務最簡單的方法。

SOAP 代表簡單訪問物件協議。(注:原文此處有誤,應為Simple Object Access Protocol)

SOAP 是一個基於 XML 的協議,用於在計算機之間交換資訊。

以下是 SOAP 的特性:

  • SOAP 是一種通訊協議。

  • SOAP 用於應用程式之間的通訊。

  • SOAP 是傳送訊息的格式。

  • SOAP 旨在透過網際網路進行通訊。

  • SOAP 與平臺無關。

  • SOAP 與語言無關。

  • SOAP 簡單且可擴充套件。

  • SOAP 可以繞過防火牆。

  • SOAP 將被開發成為 W3C 標準。

是的!

WSDL 代表 Web 服務描述語言 (Web Services Description Language)。

WSDL 是一種基於 XML 的語言,用於描述 Web 服務以及如何訪問它們。

以下是 WSDL 的特性:

  • WSDL 由微軟和 IBM 共同開發。

  • WSDL 是一種基於 XML 的協議,用於在分散式和分散式環境中進行資訊交換。

  • WSDL 是描述 Web 服務的標準格式。

  • WSDL 定義描述瞭如何訪問 Web 服務以及它將執行哪些操作。

  • WSDL 是一種用於描述如何與基於 XML 的服務互動的語言。

  • WSDL 是 UDDI(一種基於 XML 的全球業務登錄檔)不可或缺的一部分。

  • UDDI 使用 WSDL 作為其語言。

  • WSDL 讀作“wiz-dull”,拼寫為“W-S-D-L”。

UDDI 代表通用描述、發現和整合 (Universal Description, Discovery, and Integration)。

UDDI 是一種基於 XML 的標準,用於描述、釋出和查詢 Web 服務。

以下是 UDDI 的特性:

  • UDDI 是 Web 服務分散式登錄檔的規範。

  • UDDI 是平臺無關的開放框架。

  • UDDI 可以透過 SOAP、CORBA 和 Java RMI 協議進行通訊。

  • UDDI 使用 WSDL 來描述 Web 服務的介面。

  • UDDI 與 SOAP 和 WSDL 一起被視為 Web 服務的三個基礎標準之一。

  • UDDI 是一項開放的行業倡議,使企業能夠相互發現並定義它們如何在網際網路上進行互動。

Web 服務有三個特定的安全問題:

  • 機密性

  • 身份驗證

  • 網路安全

UDDI 描述了 Web 服務的介面。

UDDI 使用 WSDL 作為其語言。

不是!XML-RPC 是平臺無關的。

是的!由於 XML-RPC 和 SOAP 主要執行在 HTTP 之上,而 HTTP 支援安全套接字層 (SSL),因此可以透過 SSL 加密通訊。

可以考慮以下選項,但對於強大的身份驗證方案,還沒有明確的共識。

HTTP 包含對基本身份驗證和摘要身份驗證的內建支援,因此可以像目前保護 HTML 文件一樣保護服務。

SOAP 數字簽名 (SOAP-DSIG) 利用公鑰加密技術對 SOAP 訊息進行數字簽名。它使客戶端或伺服器能夠驗證另一方的身份。請訪問 http://www.w3.org/TR/SOAP-dsig 檢視。

結構化資訊標準促進組織 (OASIS) 正在研究安全斷言標記語言 (SAML)。

Web 服務的可管理性定義為一組功能,用於在 Web 服務架構中發現 Web 服務的存在、可用性、執行狀況、效能、使用情況以及控制和配置。隨著 Web 服務變得普遍且對業務運營至關重要,管理和實施它們的任務對於業務運營的成功至關重要。

有兩種可能的解決方案:

  • 過濾掉所有將內容型別設定為 text/xml 的 HTTP POST 請求。

  • 另一種方法是過濾 SOAPAction HTTP 頭屬性。

下一步是什麼?

接下來您可以回顧一下您之前完成的關於這個主題的作業,確保您可以自信地談論它們。如果您是應屆畢業生,面試官不會期望您回答非常複雜的問題,而是要確保您的基本概念非常紮實。

其次,如果您無法回答一些問題,這真的無關緊要,重要的是,無論您回答了什麼,都必須自信地回答。所以在面試中要保持自信。Tutorialspoint 祝您面試順利,並祝您未來一切順利!乾杯 :-)

web_services_questions_answers.htm
廣告