我读过关于这一点,但没能得到关于这一主题的结论了很多东西。
但我从来没有使用PUT或DELETE HTTP请求的方法。 我的倾向是使用GET当系统(我的应用程序或网站)的统计可能不会受到影响(如产品上市),并使用POST时,它会受到影响(顺序放置)。 是不是足够的还是我失去了一些东西?
我读过关于这一点,但没能得到关于这一主题的结论了很多东西。
但我从来没有使用PUT或DELETE HTTP请求的方法。 我的倾向是使用GET当系统(我的应用程序或网站)的统计可能不会受到影响(如产品上市),并使用POST时,它会受到影响(顺序放置)。 是不是足够的还是我失去了一些东西?
删除的删除请求资源:
DELETE方法请求原始服务器删除由Request-URI标识的资源。 该方法可以通过在源服务器上的人为干预(或其它装置)所覆盖。 客户端不能保证操作已经进行,即使从源服务器返回的状态代码表示操作已成功完成...
PUT是把或更新服务器上的资源:
PUT方法要求将封闭实体所提供的请求URI下储存。 如果Request-URI是指已经存在的资源,封闭的实体应该被视为驻留在源服务器上的一个修改后的版本。 如果Request-URI没有指向已存在的资源,而URI是能够被定义为请求的用户代理一个新的资源,原始服务器可以创建与URI资源...
对于完整的规范,请访问:
由于目前的浏览器遗憾的是不支持任何其他动词比POST和HTML表单的GET ,你通常不能将它与他们充分的程度(你仍然可以劫持通过JavaScript虽然他们提交)利用HTTP。 没有用于在HTML表单这些方法支持导致含有URI的动词,例如像
POST http://example.com/order/1/delete
或者更糟
POST http://example.com/deleteOrder/id/1
通过HTTP隧道有效CRUD语义。 但是动词从来没有打算要URI的一部分。 代替HTTP已经提供了机制和语义通过HTTP方法CRUD资源(例如,顺序)。 HTTP是一个协议,而不仅仅是一些数据隧道服务。
因此,要删除在Web服务器上的资源时,你会打电话
DELETE http://example.com/order/1
并更新它,你会打电话
PUT http://example.com/order/1
并提供在PUT体更新的资源表示服务器无法再申请。
所以,如果你正在构建某种客户端的REST API ,你很可能会使其发送PUT和DELETE请求。 这可能是在浏览器中内置客户端,例如,通过JavaScript发送请求,或者它可能是一个服务器,等上运行的一些工具
对于一些更多详情,请访问:
使用HTTP请求的动词,如GET,POST,DELETE,PUT等等...让您构建RESTful Web应用程序。 阅读在这里: http://en.wikipedia.org/wiki/Representational_state_transfer
看到从这个利益最简单的方法就是看看下面这个例子。 每一个MVC框架有一个Router/Dispatcher
该URL-S映射到actionControllers。 所以像这样的URL: /blog/article/1
将调用blogController::articleAction($id);
现在,这个路由器是只知道URL或/blog/article/1/
但是,如果路由器会知道整个HTTP请求对象,而不是只是URL的,他能有机会HTTP请求动词(GET,POST,PUT,DELETE ...),以及其它许多有用的东西有关当前HTTP请求。
这将使您可以配置应用程序,以便它可以接受相同的URL,并将其映射到取决于HTTP请求的动词不同actionControllers。
例如:
如果你想以检索第1条,你可以这样做:
GET /blog/article/1 HTTP/1.1
但是,如果要删除第1条,你会做到这一点:
DELETE /blog/article/1 HTTP/1.1
请注意,两个HTTP请求具有相同的URI,/博客/条/ 1,唯一不同的是HTTP请求动词。 并基于该动词路由器可以调用不同的ActionController。 这使您能够构建整洁的URL-S。
阅读两篇文章,它们可以帮助你:
Symfony的2 - HTTP基础
Symfony的2 -路由
这些文章是关于Symfony的2框架,但他们可以帮助你找出如何做HTTP请求和响应工作。
希望这可以帮助!