当前位置:  开发笔记 > 编程语言 > 正文

是否有任何理由不在Web应用程序中使用HTTP PUT和DELETE?

如何解决《是否有任何理由不在Web应用程序中使用HTTPPUT和DELETE?》经验,为你挑选了2个好方法。

环顾四周,除了GET和POST请求之外,我无法命名使用任何内容的单个Web应用程序(不是Web服务).这有什么特别的原因吗?某些浏览器(或服务器)不支持任何其他类型的请求吗?或者这仅仅是出于历史原因?我想利用PUT和DELETE请求让我的生活在服务器端变得更容易,但我不愿意,因为没有其他人这样做.



1> ars..:

实际上相当多的人使用PUT和DELETE,主要用于非浏览器API.一些示例是Atom发布协议和Google Data API:

http://www.ietf.org/rfc/rfc5023.txt

http://code.google.com/apis/gdata/docs/2.0/basics.html

除此之外,您没有看到PUT/DELETE的常见用法,因为大多数浏览器不支持PUT和DELETE通过Forms.HTML5似乎正在解决这个问题:

http://www.w3.org/TR/html5/forms.html#form-submission-0

它适用于浏览器应用程序的方式是:人们在设计RESTful应用程序时考虑到PUT和DELETE,然后通过来自浏览器的POST"隧道"这些请求.例如,看看这个关于Ruby on Rails如何使用隐藏字段完成此操作的问题:

如何为Rails和GWT模拟PUT/DELETE?

因此,您不会自己设计具有更大HTTP动词集的应用程序.

编辑:顺便说一句,如果你对基于浏览器的表单帖子中缺少PUT/DELETE的原因感到好奇,那么事实证明没有真正好的技术原因.在休息讨论邮件列表上阅读这个帖子,特别是罗伊菲尔丁的评论,对某些背景来说很有意思:

http://tech.groups.yahoo.com/group/rest-discuss/message/9620?threaded=1&var=1&l=1&p=13

编辑:有一些评论AJAX库是否支持所有方法.它确实归结为XMLHttpRequest的实际浏览器实现.我认为有人可能会发现这个链接很方便,它会测试你的浏览器以查看HttpRequest对象与各种HTTP选项的兼容性.

http://www.mnot.net/javascript/xmlhttprequest/

不幸的是,我不知道收集这些结果的参考资料.


你猜怎么着?在最新版本(2010年10月19日)中,HTML5中的PUT/DELETE支持似乎已被删除.http://www.w3.org/TR/html5/forms.html#form-submission-0

2> Gareth..:

很简单,HTML 4.01 form元素只允许其属性中的值" POST"和" GET"method


浏览器通常不仅仅是HTML规范构建 - JavaScript不是HTML 4.01的一部分.
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有