javascript - 为 ajax 使用多个方法 token 有什么好处?

标签 javascript php backbone.js

而不是通过 POST 方法 token (并将内容类型设置为 json )执行所有服务器操作。

我在这里做了一些研究,我指的是 ietf 文档中提到的方法 token 。

https://www.rfc-editor.org/rfc/rfc2616#section-5.1.1

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

我没有看到使用所有其他服务器类型请求的好处。我知道它们被使用,特别是 Backbone 的使用拒绝了这种兴趣,如下所示:

var methodMap = {
    'create': 'POST',
    'update': 'PUT',
    'patch':  'PATCH',
    'delete': 'DELETE',
    'read':   'GET'
  };

这些属性最终会传递给 xhr open 方法,您可以在我上面发布的链接中阅读该方法。

实际上 MDN 文章几乎没有任何信息,而 W3 文章似乎有点深奥。

最佳答案

您所描述的是一种称为表述性状态传输 (REST) 的应用程序设计理念。这一理念比仅仅使用多种请求方法更具包容性。它还涵盖了以下思想:每种类型的数据都需要自己的 URL、该 URL 的逻辑结构应如何、什么应属于查询参数以及什么应是 URL 路径。 REST 是与语义 Web 相关的最早的想法之一,即网站应该像人类一样易于机器阅读(或者换句话说,网站应该易于开发人员理解)普通用户)。

您可以在此处阅读描述 REST 的原始论文:http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm

REST实际上只是整篇论文中的一章。该论文描述了理想的 Web 架构应该是什么样子。

您需要休息吗?

简短的回答当然是否定的。从技术上讲,你可以做任何你想做的事情。事实上,当 REST 思想首次被引入时,并没有简单的方法在某些浏览器上执行 PUT 和 DELETE 请求。因此人们坚持使用 GET 和 POST,并且专门更新了 HTTP 规范以使 GET 和 POST 具有 RESTful 含义。

HTTP 规范建议仅将 GET 用于独立操作(没有副作用的请求),而只要请求导致服务器中发生某些更改,就应使用 POST。但由于调试方便,开发人员一直在使用 GET 来更新数据库,因为您只需在浏览器的 URL 输入字段中构造查询即可。 RESTful 方式是只允许 POST 请求更新数据库(或将任何内容保存到文件)。

有什么优势?

其优点是本质上允许开发人员将网络视为 API。允许机器读取网页可以实现混搭、创建移动应用程序作为前端等。

好的 API 或库是一致的。一致的 API 更易于使用、更易于内存,并且不需要开发人员过于频繁地查找文档。 REST 试图通过赋予请求类型真正的含义来提供这种一致性。因此,如果您看到 PUT 请求,您不必猜测它在做什么。

因此,作为一名程序员,不仅要尽可能地采用 RESTful,还要说服尽可能多的其他程序员创建 RESTful 网站,这对您来说是有利的。如果所有网站都是 RESTful,那么编写脚本来利用在线数据做智能事情就会变得容易得多。

另一方面,作为一名程序员,你也有不同意别人想法的自由。

关于javascript - 为 ajax 使用多个方法 token 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24919452/

相关文章:

php - 用于图像数据和其他序列化数据的单个 ajax

php - 如何选择只有两个参与者参与的对话?

javascript - 如何检测FileReader加载结束?

javascript - Backbone : 'keypress' event handler depends on div's tabindex?

javascript - 如何计算出根据拖动距离旋转轮子的度数?

javascript - Blade laravel 中的总值之和

javascript - 在没有 module.exports 的情况下使用 Jest 进行单元测试

javascript - AngularJS:在JSP中获取$http.post数据

php - MYSQL : Two tables "Signup" and "Login" ? 做成一个表好还是两个不同的表好

backbone.js - Backbone 路由在转换为 TypeScript 时不起作用