Dar*_*rov 23
HTTP是基于TCP/IP的协议.因此,当您使用REST时,您已经在使用TCP进行通信.但是如果你想在纯TCP套接字上使用REST,没有HTTP,那么不,这没有意义,因为REST基于HTTP动词和头文件.这些概念仅存在于HTTP协议中.
REST 是一种架构风格(或一组约束)。碰巧 HTTP 可以轻松匹配所有这些约束。最重要的是,许多 HTTP/1.1 基础设施已经支持它:服务器、代理、缓存、客户端库、解析器等。像这样:
系统可以从头开始构建到 RESTful 而不是依赖于 HTTP 吗?当然。来自Roy Fielding 本人的权威来源:
REST API 不应依赖于任何单一的通信协议。
如果您阅读这篇文章或实际上Roy 的论文,您会意识到,如果您尝试遵循所有约束,您最终会得到看起来和行为与现代 HTTP 非常相似的东西,尽管它可能缺乏大部分基础设施支持HTTP 有。那么问题来了:值得吗?
此外,如果您查看大多数 RESTful 服务,它们很少是完全 REST 服务。这就是为什么他们称自己为“RESTful 服务”而不是“REST 服务”。顺便说一句,该站点的 API 非常接近于完整的 REST 实现。