HTTP 客户端和 REST 客户端的区别

Posted

技术标签:

【中文标题】HTTP 客户端和 REST 客户端的区别【英文标题】:Difference between HTTP Client and REST Client 【发布时间】:2018-10-01 17:19:30 【问题描述】:

我有点困惑,“HTTP 客户端”和“REST 客户端”这两个术语是否有区别?

例如,我发现一些 android 库看起来像是为使用 REST 服务而设计的,但它们称自己为“HTTP 客户端”(改造)或“HTTP 库”(凌空抽射)。

例如,还有一个自称为“HTTP/REST 客户端库”的库(仅适用于 Android)。

那么,“HTTP 客户端”和“REST 客户端”是一回事吗?

或者“REST 客户端”是一个 HTTP 客户端,带有一些额外的 功能?

JSON/XML 解析器呢?它们是否被视为 REST 的一部分 客户端而不是 HTTP 客户端?

如果有人能澄清这件事,我将不胜感激。

【问题讨论】:

【参考方案1】:

回答我自己的问题:

HTTP 客户端是能够以 HTTP 格式向服务器发送请求并从服务器获取响应的客户端

REST 客户端是一种旨在使用来自服务器的服务的客户端,并且该服务是 RESTful。

在我在网上看到的大多数情况下,所谓的 REST 客户端实际上是一个 HTTP 客户端,因为它只使用 HTTP,并且可以与提供非 RESTful 服务的 HTTP 服务器通信

【讨论】:

这真的很令人困惑,我在任何地方都找不到正确的答案。感谢分享【参考方案2】:

我认为您的第二个要点是正确的,除此之外,它不是关于功能,而是关于语义。因此 REST 描述了应该如何使用 HTTP,由传输的数据(链接)表示。两者(HTTP 和 REST)都未绑定到特定格式,如 XML 或 JSON。尽管 JSON 很流行,但您仍然可以传输普通的旧 html

看看What is the difference between HTTP and REST?

【讨论】:

【参考方案3】:

Rest 客户端到 http 客户端就像 ORM 到原始 SQL。使用 rest 客户端,您可以直接在程序中将查询作为对象获取。使用 http 客户端,您必须手动解析和转换响应。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于HTTP 客户端和 REST 客户端的区别的主要内容,如果未能解决你的问题,请参考以下文章

来自 Rest 客户端的 OAuth 调用

REST客户端和浏览器的区别

webservice和restful的区别

Elasticsearch官方Elasticsearch Java客户端的状态

REST 后端的 Spring Security CSRF 保护 - 将 Synchronizer Token Pattern 传输到客户端

Http和https的区别