【问题标题】:Are HTTP 1.1 methods like PUT, DELETE, etc. were added explicitly to support REST?是否明确添加了 HTTP 1.1 方法(如 PUT、DELETE 等)以支持 REST?
【发布时间】:2022-11-21 15:50:20
【问题描述】:

人们常说应该使用 PUT、DELETE 和 HTTP 1.1 的其他方法来提供 RESTful API。目的是使 URI 引用资源(表示),方法指定要完成的操作。我看到 HTTP 1.1 于 1997 年发布,Fielding 介绍 REST 的博士论文发生于 2000 年。那么,除了 GET 和 POST 之外,为什么这些方法真正首先被添加到 HTML 1.1 规范中?

如果能参考一篇类似的文章来解释为什么 HTTP 1.1 方法集在 HTTP 1.0 之后扩展而没有引用 3 年后出现的 REST,那就太好了。

【问题讨论】:

  • REST 并不真正存在,它只是意味着“不使用任何其他更复杂的 API 框架”
  • 是的,我明白了,但是 Roy Fielding 参与了 HTTP 和 URI 规范以及他的建筑风格称为 REST。我可能怀疑他以某种方式影响了 HTTP 1.1 以具有 PUT 和 DELETE,并在他的博士后期正式制定了这些想法。但除此之外,HTTP 本来就是一种传输 HTML 页面的方式,为什么要添加 PUT 和 DELETE 方法呢?这才是真正让我好奇的地方。
  • 我的意思是,你没看到 PUT 和 DELETE 方法对于 just 的想法有点陌生吗?通过互联网传输超文本而不是成为一种手段编辑超文本?

标签: rest http


【解决方案1】:

HTTP/1.0 有 PUTDELETE 并且比论文早了几年。

https://www.ietf.org/rfc/rfc1945.txt

文档来自 1996 年。

除此之外,REST 论文旨在描述网络本身的体系结构,而不是 JSON api(您没有明确提及这一点,但这是一个常见的误解)。 HTTP 和 HTML 是 REST 架构的实现,尽管 REST 是在最初的几个版本 HTML 和 HTTP 之后描述的。

因此,如果您好奇 HTTP/1.1 有时是否以与 REST 论文相匹配的方式描述事物,我认为这有点不言而喻。它们的作者相同,大约在同一时间编写,一个文档描述了 REST 架构,另一个是 REST 架构的(部分)实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 2019-10-10
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2018-03-21
    相关资源
    最近更新 更多