Http方法的差异

时间:2012-07-04 07:41:56

标签: javascript jquery asp.net html

之间有什么区别
HTTPPOST
HTTPDELETE
HTTPPUT
HTTPGET

通常使用post和get方法提交表单,我非常了解但想知道删除和放置方法何时以及为什么它们可用于提高编程技能

2 个答案:

答案 0 :(得分:1)

不同方法的作用完全取决于远程Web服务器如何选择解释它们。没有固定的含义。服务器不关心它是否看到GETPOST;相反,最终被执行以服务请求的代码确实(并且可以决定做任何事情,因为它是代码)。

HTTP协议给出了每个动词应该触发什么样的动作的官方指南,即:

  • GET:检索资源
  • PUT:将资源替换为另一个资源,或者如果资源不存在则创建
  • 删除:删除资源(如果存在)
  • POST:可能会做任何事情;通常用于“添加”到资源

但是,此映射最终由应用程序代码控制,并且通常不受Web应用程序的尊重(例如,您将看到使用POST而不是DELETE来执行逻辑删除)。

在通过HTTP讨论REST架构时,情况会更好。

答案 1 :(得分:1)

简而言之:

  • GET =获取资源。
  • POST =更新资源。
  • DELETE =删除资源。
  • PUT =创建/替换资源。

在HTML中,只允许GET和POST。除非您有代码(或配置)来指定您希望它使用不同的HTTP方法做什么,否则典型的Web开发HTTP服务器将不执行任何操作。

没有什么可以阻止您更新用户数据以响应GET请求,但这是不可取的。浏览器处理GET和POST的方式与缓存请求有关(缓存的GET将自动重新发布,但缓存的POST会提示用户允许重新发送),许多HTML元素可以发出GET,这使得它们不安全更新。还有其他HTTP方法http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

许多声称是RESTful的人会将HTTP POST和PUT与SQL UPDATE和INSERT混淆。没有直接关联,它总是取决于上下文。也就是说,POST意味着完全取决于您与之交互的资源。例如,在博客上创建新条目可以是对博客本身的POST,也可以是对从属资源的PUT。但是,PUT by definition必须始终包含整个资源。

通常情况下,您不允许HTTP客户端确定新资源的URI,因此POST / to blog比PUT / blog / article-uri 更安全,尽管HTTP确实如此如果服务器无法遵守预期的URI,则需要适当的响应。 (HTTP只是一个规范,你必须编写代码来支持它,或者找到一个框架)

但是你总是可以通过POSTING到负责其下属的父资源来实现PUT或DELETE用例(即将消息发布到/ mailbox而不是将其发送到/ mailbox / message-id ),公开公开PUT或DELETE方法并不重要。

您可以通过采用REST原则来提高系统内交互的可见性来提高编程技能,例如,通过使用统一的界面,可以更简单地根据REST对交互进行上下文关联。

REST不是HTTP:http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm