Web 服务的类型

2025年3月17日 | 阅读 3 分钟

Web 服务有两种类型

  • RESTful Web 服务
  • SOAP Web 服务

RESTful Web 服务

REST 代表 表述性状态转移 (REpresentational State Transfer)。它由开发了 HTTP 的 Roy Thomas Fielding 开发。RESTful web 服务的主要目标是使 web 服务 更有效。RESTful web 服务试图使用 HTTP 中已经存在的不同概念来定义服务。REST 是一种 架构方法,而不是一种协议。

它不定义标准的报文交换格式。我们可以使用 XML 和 JSON 构建 REST 服务。JSON 在 REST 中使用更流行的格式。REST 中的 关键抽象 是资源。资源可以是任何东西。它可以通过 统一资源标识符 (URI) 访问。 例如

资源有 XML、HTML 和 JSON 等表述。当前状态由表述性资源捕获。当我们请求一个资源时,我们提供资源的表述。HTTP 的重要方法有

  • GET:它读取一个资源。
  • PUT:它更新一个现有资源。
  • POST:它创建一个新资源。
  • DELETE:它删除资源。

例如,如果我们想在社交媒体应用程序中执行以下操作,我们将获得相应的结果。

POST /users:它创建一个用户。

GET /users/{id}:它检索一个用户的详细信息。

GET /users:它检索所有用户的详细信息。

DELETE /users:它删除所有用户。

DELETE /users/{id}:它删除一个用户。

GET /users/{id}/posts/post_id:它检索特定帖子的详细信息。

POST / users/{id}/ posts:它为用户创建一个帖子。

GET /users/{id}/post:检索用户的所有帖子

HTTP 还定义了以下标准状态码

  • 404:未找到资源
  • 200:成功
  • 201:已创建
  • 401:未授权
  • 500:服务器错误

RESTful 服务约束

  • 必须有服务生产者和服务消费者。
  • 服务是无状态的。
  • 服务结果必须是可缓存的。
  • 接口是统一的,并公开资源。
  • 服务应采用分层架构。

RESTful Web 服务的优点

  • RESTful Web 服务是 平台无关的
  • 它可以用任何编程语言编写,并且可以在任何平台上执行。
  • 它提供不同的数据格式,如 JSON、文本、HTMLXML
  • 它比 SOAP 快,因为没有像 SOAP 那样的严格规范。
  • 这些是 可重用的
  • 这些是 与语言无关的

SOAP Web 服务

REST 定义了一种架构方法,而 SOAP 对 XML 的格式施加了限制。XML 在服务提供者和服务消费者之间传输数据。请记住,SOAP 和 REST 不可比较

SOAP:SOAP 代表 简单对象访问协议 (Simple Object Access Protocol)。它定义了标准的 XML 格式。它还定义了构建 web 服务的方式。我们使用 Web 服务定义语言 (WSDL) 来定义 请求 XML响应 XML 的格式。

例如,我们请求从 Facebook 应用程序访问 Todo 应用程序。Facebook 应用程序向 Todo 应用程序发送 XML 请求。Todo 应用程序处理该请求并生成 XML 响应,然后将其发送回 Facebook 应用程序。

Types of Web Services

如果我们使用 SOAP web 服务,我们必须使用 SOAP 的 结构

Types of Web Services

在上图中,SOAP-Envelope 包含一个 SOAP-HeaderSOAP-Body。它包含识别请求所需的元信息,例如身份验证、授权、签名等。SOAP-Header 是可选的。SOAP-Body 包含请求或响应的真实 XML 内容。如果发生错误,响应服务器会使用 SOAP-Fault 做出响应。

让我们了解 SOAP XML 请求和响应结构。

XML 请求

XML 响应

注意事项

  • SOAP 定义了 请求响应 的格式。
  • SOAP 对传输没有任何限制。我们可以使用 HTTPMQ 进行通信。
  • 在 SOAP 中,服务定义通常使用 Web 服务定义语言 (WSDL) 完成。WSDL 定义了 端点、所有操作、请求结构响应结构

端点 是公开 HTML 或 ASP 页面的连接点。它提供寻址 Web 服务端点所需的信息。操作是允许访问的服务。请求结构定义请求的结构,而响应结构定义响应的结构。


下一主题Web 服务组件