PUT和DELETE HTTP请求方法的用处是什么?

我已经阅读了很多关于这方面的内容,但是无法得出关于这个主题的结论。

但我从来没有使用PUT或DELETE HTTP请求方法。 我的倾向是使用GET系统(我的应用程序或网站)的统计可能不会受到影响(如产品列表),并使用POST时受影响(订购放置)。 是不是够了还是我错过了什么?

DELETE用于删除请求资源:

DELETE方法请求源服务器删除由Request-URI标识的资源。 这种方法可能会被原始服务器上的人为干预(或其他方式)覆盖。 即使从源服务器返回的状态码指示操作已成功完成,客户端也不能保证已执行操作。

PUT用于放置或更新服务器上的资源:

PUT方法要求封闭的实体存储在提供的Request-URI下。 如果Request-URI引用一个已经存在的资源,封闭的实体应该被认为是驻留在原始服务器上的修改版本。 如果Request-URI不指向现有资源,并且该URI能够被请求用户代理定义为新资源,则源服务器可以使用该URI创build资源…

完整的规范访问:

由于目前的浏览器很不幸地不支持比HTML和POSTforms的其他任何动词 ,所以你通常无法使用HTTP(尽pipe你仍然可以通过JavaScript劫持他们的提交)。 在HTML表单中缺less对这些方法的支持导致了包含动词的URI,例如

POST http://example.com/order/1/delete 

甚至更糟

 POST http://example.com/deleteOrder/id/1 

通过HTTP有效地挖掘CRUD语义。 但动词从来都不是URI的一部分。 相反,HTTP已经通过HTTP方法提供了CRUD资源(例如命令)的机制和语义。 HTTP是一种协议,而不仅仅是一些数据隧道服务。

所以要删除networking服务器上的资源,你可以打电话

 DELETE http://example.com/order/1 

并更新它,你会打电话

 PUT http://example.com/order/1 

然后在PUT主体中提供更新后的资源表示,以供networking服务器应用。

因此,如果您正在为REST API构build某种客户端,则可能会使其发送PUT和DELETE请求。 这可能是一个在浏览器内部build立的客户端,例如通过JavaScript发送请求,或者可能是在服务器上运行的一些工具等。

有关更多详情,请访问:

使用HTTP请求谓词,如GET,POST,DELETE,PUT等…使您能够构buildRESTful Web应用程序。 在这里阅读: http : //en.wikipedia.org/wiki/Representational_state_transfer

从这个angular度看最好的方法就是看这个例子。 每个MVC框架都有一个将URL-s映射到actionControllers的Router/Dispatcher 。 所以像这样的URL: /blog/article/1会调用blogController::articleAction($id); 现在这个路由器只知道URL或/blog/article/1/

但是,如果该路由器知道整个HTTP请求对象而不仅仅是URL,他可以访问HTTP请求动词(GET,POST,PUT,DELETE …)以及许多其他有用的关于当前HTTP请求的东西。

这将使您能够configuration应用程序,以便它可以接受相同的URL并根据HTTP请求动词将其映射到不同的actionControllers。

例如:

如果你想检索第1条,你可以这样做:

 GET /blog/article/1 HTTP/1.1 

但是如果你想删除文章1,你会这样做:

 DELETE /blog/article/1 HTTP/1.1 

请注意,两个HTTP请求都具有相同的URI / blog / article / 1,唯一的区别是HTTP请求动词。 基于这个动词你的路由器可以调用不同的actionController。 这使您能够构build整洁的URL。

阅读这两篇文章,他们可能会帮助你:

Symfony 2 – HTTP基础

Symfony 2 – 路由

这些文章是关于Symfony 2框架的,但是它们可以帮助你弄清楚HTTP Requests和Responses是如何工作的。

希望这可以帮助!