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
广告