1
690
HTTP PUT: Put将一个文件或资源放在一个特定的URI上,并正好放在那个URI上。如果该URI中已经有文件或资源,则PUT将替换该文件或资源。如果没有文件或资源,则PUT创建一个。放置是 idempotent 但矛盾的是,放置的响应不可缓存。 HTTP POST: post将数据发送到特定的URI,并期望该URI上的资源处理该请求。此时的Web服务器可以决定如何处理指定资源上下文中的数据。post方法不是 幂等元 但是,回复后 是 可缓存,只要服务器设置了适当的缓存控制和过期头。 官方的HTTPRFC将post指定为:
HTTP 1.1 RFC location for POST POST与PUT的区别: RFC本身解释了核心区别:
使用正确的方法,除此之外不相关: 一个好处 REST ROA vs-soap是指在使用HTTP REST ROA时,它鼓励正确使用HTTP谓词/方法。因此,例如,您只在希望在该确切位置创建资源时使用Put。而且您永远不会使用GET创建或修改资源。 |
2
169
只有语义。
一个HTTP协议
一个HTTP协议
放置是 喜欢 文件上传。输入到某个URI会确切影响该URI。发布到URI可能会产生任何影响。 |
3
101
要给出REST样式资源的示例: “post/books”包含一堆图书信息,可能会创建一本新书,并使用标识该图书的新URL响应:“/books/5”。 “put/books/5”必须创建一个ID为5的新图书,或者用ID 5替换现有图书。 在非资源样式中,post可以用于几乎所有具有副作用的内容。另一个区别是,Put应该是等幂的——将相同数据的多个Put放到同一个URL上是可以的,当多个Post可能创建多个对象或您的Post操作执行的任何操作时。 |
4
54
|
5
37
据我所知,Put主要用于更新记录。
但要清楚的是,这个放置通常会“替换”存在的现有记录,如果不存在则创建。 |
6
16
其他人已经发布了非常好的答案,我只是想补充一点,对于大多数语言、框架和用例,您将要处理的帖子要比Put多得多。到目前为止,放置、删除等基本上都是琐碎的问题。 |
7
12
|
8
11
岗位被认为是某种工厂类型的方法。您将数据包含在其中以创建您想要的内容,而另一端的任何内容都知道如何处理它。Put用于更新给定URL上的现有数据,或者在知道URI将是什么并且它不存在时创建新的数据(而不是在必要时创建并返回其URL的文章)。 |
9
9
请参阅: http://zacharyvoase.com/2009/07/03/http-post-put-diff/ 最近,我很恼火的是,Web开发人员普遍错误地认为,文章用于创建资源,而Put用于更新/更改资源。 如果你看一下RFC 2616的第55页(__超文本传输协议_“http/1.1_), Section 9.6 (__Put_157;),您将看到Put的实际用途:
还有一个方便的段落来解释Post和Put之间的区别:
它没有提到更新/创建之间的区别,因为这与它的意义无关。关于这两者的区别:
而这:
所以,请停止这种普遍误解的传播。阅读你的RFC。 |
10
9
REST要求开发人员以与 协议定义。这个基本的REST设计原则在 创建、读取、更新和删除(CRUD)操作和HTTP方法。根据这个 映射: 要在服务器上创建资源,请使用Post。 要检索资源,请使用get。 要更改资源状态或更新资源,请使用Put。 要删除或删除资源,请使用“删除”。 |
11
0
post和put的区别在于put是等幂的,也就是说,多次调用相同的put请求总是会产生相同的结果(即没有副作用),而另一方面,重复调用post请求可能会产生多次创建相同资源的(附加)副作用。
|
Klt · 如何将提取数据放入变量中 6 年前 |
Pratap D · 使用PUT生成唯一标识符并上载文件 7 年前 |
Ralf · AJAX对数据库的PUT调用不起作用 7 年前 |
Bafla13 · BerkeleyDB不存储文件 9 年前 |