其他动词我都能理解,但是作为动词的“post”我没有太多上下文。它是像邮局一样的"post"(这有些道理,尽管似乎有点牵强),还是像公告板上的"post"(我不太理解)?有人知道是谁决定使用“POST”这个词,并且为什么选择它吗?
其他动词我都能理解,但是作为动词的“post”我没有太多上下文。它是像邮局一样的"post"(这有些道理,尽管似乎有点牵强),还是像公告板上的"post"(我不太理解)?有人知道是谁决定使用“POST”这个词,并且为什么选择它吗?
嗯,“像公告栏上发布帖子一样发布”可能是最接近答案的描述了。最终,这正是该方法设计的功能之一。POST
始终用于将内容发布到某个“工厂”以供其处理,否则您可以使用PUT
。让我们来看一下RFC2616第9.5节:
POST方法用于请求源服务器接受作为请求中封装的实体作为标识Request-Line中的资源的新附属物。 POST旨在允许一个统一的方法覆盖以下功能:
当然,这不是为什么称之为“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”这个词的一些含义(http://www.thefreedictionary.com/Post,第三个定义)-根据那里的说法,“post”作为动词的意思可以是:
将信件或包裹邮寄 告诉最新消息 将物品转移到记账中的分类帐上 在分类帐中进行必要的记录
这正是POST 所做的(隐喻)。如果您想发电子邮件,则让您的电子邮件提供商处理它,然后通知您状态。这也是
PUT 和
POST 之间的区别:如果客户端负责处理资源,则使用
PUT (因为您知道要放置什么以及放置在哪里)。
因此,理论上,如果您知道要发送电子邮件的人的IP地址,您就不需要您的提供商为您查找此内容。但现在,您知道要放什么,但不知道放在哪里。因此,在这种情况下,您使用POST 。您“告诉服务器最新消息”,而服务器会决定将其放在哪里。因此,您可以将其视为将“项目”转移到已经存在的资源上(例如论坛中的线程或其他内容),您只是想追加一些东西。
我希望这有任何意义...
POST方法用于请求源服务器将请求中封装的实体作为资源标识符(Request-Line)所标识的资源的新下属接受。POST旨在允许一种统一的方法来覆盖以下功能:
REST要求开发人员明确使用HTTP方法,并以与协议定义一致的方式使用。这个基本的REST设计原则建立了创建、读取、更新和删除(CRUD)操作与HTTP方法之间的一对一映射。根据这个映射:
当我们进行POST操作时,实际上是在发送新数据(创建资源),而不是获取它或调用更新或请求删除旧文档。
我认为“post”作为“寄信”的意思并不算太牵强。毕竟POST请求是包含数据的消息。至于动词来源,它们来自HTTP,因此起源可以追溯到1995年Tim Berners-Lee编写的HTML规范。