代码之家  ›  专栏  ›  技术社区  ›  Daniel Ribeiro

细粒度rest HTTP浏览器支持

  •  10
  • Daniel Ribeiro  · 技术社区  · 15 年前

    是否有关于浏览器如何实际支持RESTHTTP谓词(尤其是PUT、DELETE)的数据。这个问题的主要动机是许多来源(例如 stackoverflow answer )请注意,大多数浏览器不支持PUT和DELETE,但不支持哪个。

    Rails

    2 回复  |  直到 8 年前
        1
  •  5
  •   Community CDub    8 年前

    ask Anne :

    http://annevankesteren.nl/2007/10/http-method-support

    它已经有几年的历史了,但是它提供了一个干净的健康清单来放置和删除,但是它也尝试了不同情况下更模糊的动词,比如TRACE和PROPFIND:

    vankesteren测试了firefox3、opera9.5和internetexplorer7,这是预发行版和发行版的混合。GET和POST按预期工作,并且都支持rfc2616中的标准http方法集。有一些大小写的问题,所以你应该尽量坚持大写;TRACE和OPTIONS分别是在Firefox和Opera中发现问题的边缘案例。连接、跟踪和搜索对于IE来说是有问题的。记住这是2007年写的。

    我认为浏览器除了GET和POST之外不支持的所有混乱源于HTML规范列出了 这两个在 HTML <form> element :

    FORM元素的method属性指定用于将表单发送到处理代理的HTTP方法。此属性可能有两个值:

    • get:使用HTTP“get”方法,表单数据集被附加到action属性指定的URI中(用问号(“?”)作为分隔符),并且这个新的URI被发送到处理代理。

    • post:使用HTTP“post”方法,表单数据集包含在表单主体中,并发送给处理代理。

    这就是为什么浏览器只支持HTML中的GET和POST;既然标准这么说。

    当前(2014年1月) XMLHttpRequest specification 另一方面,明确指出应允许通过请求方法,但有一些例外(CONNECT、TRACE或TRACK),并且RFC2616方法应大写:

    如果它与上面的任何一个都不匹配,它将被逐字传递,包括在最终请求中。

    另一个或多或少得出相同结论的来源:XMLHttpRequest支持PUT和DELETE: http://jshirley.vox.com/library/post/xmlhttprequest-and-rest.html (警告,截至2014年5月断开的链接)。

    编辑 问题已经解决了 asked before 当然,但两年前的答案仍然有效。

    编辑 Anne van Kesteren 2007年的简短简历,并添加了关于HTML和XMLHttpRequest的部分

        2
  •  -1
  •   Andrey Vlasovskikh    15 年前

    看到了吗 PutDeleteSupport

    推荐文章