如果您查看RFC 2616 (“Hypertext Transfer Protocol – HTTP/1.1”), Section 9.6 (“PUT”)的第55页,您将看到PUT实际上用于:
PUT方法请求将封闭的实体存储在提供的请求-URI下。还有一段很方便的段落来解释POST和PUT之间的区别:
POST和PUT请求之间的根本区别反映在请求URI的不同含义中。POST请求中的URI标识将处理封闭实体的资源。该资源可能是一个数据接受过程,一个通往其他协议的网关,或者是一个接受注释的独立实体。相反,PUT请求中的URI标识与请求一起的实体--用户代理知道打算使用什么URI,并且服务器不能试图将请求应用到其他资源。
什么时候应该使用PUT,什么时候应该使用POST?
当您可以通过特定资源完全更新资源时,请使用PUT。例如,如果您知道一篇文章驻留在http://example.org/article/1234,那么您可以通过PUT来直接为本文添加一个新的资源表示。
例如,如果您不知道实际的资源位置,例如,当您添加一篇新文章时,但是不知道将它存储在哪里,您可以将它发布到URL,并让服务器决定实际的URL。
使用HTTP方法时:
客户端包括资源的所有方面,包括唯一标识符,以唯一标识所述资源。例如:创建一个新员工。客户端为资源提供能够修改resource.This的所有信息,这意味着服务器端不更新资源的任何方面(例如更新日期)。
在这两种情况下,可以多次执行这些操作,并得到相同的结果。也就是说,不会通过多次请求操作来更改资源。因此,一个真正的幂等运算。
参考文献
http://restcookbook.com/HTTP%20Methods/put-vs-post/http://www.filecatalyst.com/rest-http-post-vs-http-puthttp://php.net/manual/en/features.file-upload.put-method.php