15

其他动词对我来说都很有意义,但我没有太多关于“post”作为动词的上下文。是像在邮局里发帖(这有点道理,虽然看起来有点牵强)还是像在布告栏上发帖(对我来说意义不大)?有谁知道谁决定“POST”以及为什么选择它?

4

3 回答 3

15

嗯,我猜,“在公告板上发帖”很接近答案。最后,这正是该方法设计的功能之一。POST总是意味着将东西发布到某种“工厂”以由它处理 - 否则你可以只使用PUT. 让我们看一下RFC2616,第 9.5 节

POST 方法用于请求源服务器接受请求中包含的实体,作为 Request-Line 中 Request-URI 标识的资源的新下级。POST 旨在允许统一的方法涵盖以下功能:

  - Annotation of existing resources;

  - Posting a message to a bulletin board, newsgroup, mailing list,
    or similar group of articles;

  - Providing a block of data, such as the result of submitting a
    form, to a data-handling process;

  - Extending a database through an append operation.

当然,这不是它为什么被称为的确切定义POST,但我认为这可能会提供一些关于它背后的想法的线索。

也许我们也可以看看“post”这个词的一些含义(http://www.thefreedictionary.com/Post,第三个定义)——据此,post 作为动词可以表示

  • 邮寄(信件或包裹)
  • 通知最新消息
  • 将(项目)转移到簿记中的分类帐
  • 在(分类帐)中进行必要的分录

这正是POST(隐喻地)所做的。如果您想发送电子邮件,请让您的电子邮件提供商处理它​​,然后通知您有关状态。这也是PUTand之间的区别POST:如果客户端负责处理资源,则您使用PUT(因为您知道该放什么以及放哪里)。

因此,理论上,如果您知道要向其发送电子邮件的人的 IP 地址,您就不需要您的提供商为您找到这些东西。但是现在,您知道该放什么,但不知道放哪里。因此,在这种情况下,您使用POST. 你“通知服务器最新消息”,服务器决定把它放在哪里。因此,您可以将其视为“将项目转移”到已经存在的资源(例如论坛中的线程或其他东西)-您只是想附加一些东西。

我希望这有任何意义......

于 2012-04-18T22:01:31.303 回答
1

POST 方法用于请求源服务器接受请求中包含的实体,作为 Request-Line 中 Request-URI 标识的资源的新下级。POST 旨在允许统一的方法涵盖以下功能:

  • 现有资源的注释;
  • 将消息发布到公告板、新闻组、邮件列表或类似的文章组;
  • 向数据处理过程提供数据块,例如提交表单的结果;
  • 通过追加操作扩展数据库。

W3 / 发布

REST 要求开发人员以与协议定义一致的方式显式使用 HTTP 方法。这种基本的 REST 设计原则在创建、读取、更新和删除 (CRUD) 操作与 HTTP 方法之间建立了一对一的映射。根据这个映射:

  • 要在服务器上创建资源,请使用 POST。
  • 要检索资源,请使用 GET。
  • 要更改资源的状态或更新它,请使用 PUT。
  • 要移除或删除资源,请使用 DELETE。

IBM / 休息

当我们发布时,我们实际上是在发送新数据(创建资源),但不会获取它或调用更新或要求粉碎我们的旧文档。

于 2012-04-18T22:04:36.280 回答
0

我不认为像“寄信”这样的帖子太牵强了。毕竟,POST 请求是包含数据的消息。至于 who,动词来自 HTTP,因此起源于 Tim Berners-Lee 在 1995 年编写的 Html 规范。

于 2012-04-18T21:49:56.223 回答