其他动词对我来说都有意义,但我没有太多关于“post”作为动词的背景。它是否像邮局中的帖子(这有点意义,虽然看起来像是一段时间)或者像公告板上的帖子一样(对我来说不太有意义)?有谁知道谁决定“POST”以及为什么选择它?
答案 0 :(得分:15)
好吧,“帖子就像在公告板上发帖”非常接近答案,我想。最后,这正是这种方法设计的功能之一。 POST
始终意味着将内容发布到某种“工厂”以供其处理 - 否则您只能使用PUT
。我们来看看RFC2616, Section 9.5:
POST方法用于请求原始服务器接受 请求中包含的实体作为新的下属 请求行中的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这个词的第3个定义)的一些含义 - 据此,作为动词的帖子可能意味着
这正是POST
所做的(比喻)。如果您想发送电子邮件,请让您的电子邮件提供商处理它,然后通知您有关状态的信息。这也是PUT
和POST
之间的区别:如果客户负责处理资源,则使用PUT
(因为您知道要放什么以及放在哪里) 。
因此,从理论上讲,如果您知道要发送电子邮件的人的IP地址,您就不需要提供商为您找到这些内容。但是现在,你知道要放什么,但不完全 。所以在这种情况下,您使用POST
。您'告知服务器最新消息',服务器决定放置它的位置。因此,您可以将其视为“将项目转移到已经存在的资源”(如论坛中的某个主题或其他内容) - 您只想添加一些内容。
我希望这有任何意义......
答案 1 :(得分:1)
POST方法用于请求源服务器接受请求中包含的实体,作为请求行中Request-URI标识的资源的新下级。 POST旨在允许统一的方法来涵盖以下功能:
REST要求开发人员以与协议定义一致的方式显式使用HTTP方法。这个基本的REST设计原则在创建,读取,更新和删除(CRUD)操作和HTTP方法之间建立了一对一的映射。根据这种映射:
当我们进行POST时,我们确实在发送新数据(创建资源)但不会获取它或调用更新或要求粉碎我们的旧documnet。
答案 2 :(得分:0)
我不认为发布'发布信件'的帖子非常有用。 POST请求毕竟是包含数据的消息。关于谁,动词来自HTTP,所以起源将是Tim Berners-Lee在1995年写的Html规范。