一、在 HTTP 中,PUT 和 POST 办法都是用来向服务器提交数据的,但它们在理论应用中有一些区别.
1、性能不同
办法 | 区别点 |
---|---|
put | PUT 办法是用来更新资源的,客户端发送的数据会替换掉服务器上对应资源的全部内容。 如果该资源不存在,则会被创立。 |
post | POST 办法则是用来提交新资源或对现有资源进行局部更新的,客户端发送的数据会被附加到服务器上对应资源的开端。 |
2、幂等性不同
办法 | 区别点 |
---|---|
put | PUT 办法是幂等的,即无论执行多少次都只会产生同样的后果,因为它总是用来更新特定的资源 |
post | POST 办法是非幂等的,因为屡次执行可能会产生不同的后果,例如每次提交的数据都会被追加到服务器上对应资源的开端 |
3、编辑时的不同
办法 | 区别点 |
---|---|
put | PUT 办法要求客户端提供残缺的资源内容,即便只是对资源的局部批改也须要将残缺的内容发送到服务器上 |
post | POST 办法则容许客户端只提交须要批改的局部数据 |
二、http 的 put 办法是否能够用于新增操作?
在 HTTP 协定中,PUT 办法的次要目标是更新或替换服务器上的资源。因而,从协定标准上来说,PUT 办法不应该用于新增操作。
如果要进行新增操作,应该应用 POST 办法,因为 POST 办法的次要目标是在服务器上创立一个新资源或对现有资源进行批改。POST 办法能够在申请体中蕴含要新增的资源数据,并且在服务器端创立新的资源,并返回资源的 URI(Uniform Resource Identifier)。
尽管 PUT 办法的次要目标是更新或替换资源,然而在某些状况下,PUT 办法也能够用于新增操作。例如,在应用 RESTful API(Representational State Transfer)时,能够应用 PUT 办法来创立新资源。然而,在这种状况下,创立新资源的操作通常须要在 URI 中指定资源的 ID 或者应用其余形式来惟一标识新资源。