为什么浏览器只支持GET和POST HTTP方法?

时间:2015-10-12 06:51:34

标签: http browser

我从Apress Apache Tomcat 7

中读到了以下文字
  

HttpServlet.service()方法实现是一种方便的方法   控制对代码中servlet的访问。例如,servlet   应始终使用。来访问从数据库中删除数据   DELETE方法,但因为浏览器只支持GET和POST   操作时,应该使用POST方法。

似乎大多数浏览器仅支持2种HTTP方法,GETPOST

如果是这样,为什么?

2 个答案:

答案 0 :(得分:2)

在表单中,唯一可能的方法是GET和POST。进行AJAX调用时,支持其他方法。

<form>

  

方法=获取|发布 [CI]
      此属性指定将使用哪种HTTP方法提交表单数据集。可能的(不区分大小写)值是&#34; get&#34; (该   默认)和&#34;发布&#34;。

XMLHttpRequest

  

方式
      要使用的HTTP方法,例如&#34; GET&#34;,&#34; POST&#34;,&#34; PUT&#34;,&#34; DELETE&#34;等。忽略非HTTP(S)URL。

答案 1 :(得分:1)

现代浏览器允许使用XMLHttpRequest进行GET,POST,PUT和DELETE。您可以浏览此bug 10671

  

执行PUT和DELETE以修改源服务器上的资源   直接使用XmlHttpRequest的现代Web浏览器   宾语。对于没有脚本的浏览器交互,这并不是那么简单。   通常,开发人员和框架最终会创建模仿的解决方案   使用“POST FORM”耦合的HTTP PUT / DELETE + Etag交互   使用专门的服务器端代码来整理特殊情况并采取行动   好像在请求中使用了正确的HTTP方法

     

其他考虑因素:

     
      
  • 使用POST作为隧道而不是使用PUT / DELETE可以导致   缓存不匹配(例如,POST响应是cachable5,PUT响应   不是[6],DELETE的回答不是[7])

  •   
  • 使用非幂等方法(POST)执行幂等元素   操作(PUT / DELETE)使网络故障导致的恢复变得复杂   (例如“重复此行动是否安全?”)。

  •   

您也可以参考此主题:Are the PUT, DELETE, HEAD, etc methods available in most web browsers?