CORS、REST、XMLHTTP 和 HTTP

CORS , REST, XMLHTTP and HTTP

REST 和 CORS.. 它们有何不同?比较它们是否正确?因为我看到一个看似 REST API 使用自定义 X- headers 来发出 pre-flighted 请求(Docebo LMS API)。这意味着 CORS 和 REST 可能用于不同的目的。但从表面上看,两者似乎都旨在提供对存储在不同服务器上的资源的访问权限。还有,Simple XMLHTTP requests seem to work like HTTP。(浏览器发送和接收的 headers 都是通过 HTTP 的)。那么,XMLHTTP objects 是被浏览器翻译成 HTTP 了吗?我现在真的在吸收大量信息,但我似乎无法在理解这些事情方面取得任何真正的进展......感谢任何帮助。

它们是完全不同的东西。 Rest 是一种用于形成数据调用的特殊方法。基本上的特点是状态不存储在服务器上而是通过调用传递的系统。你可以阅读更多here

Cors 是一种技术,可让 javascript 对域以外的域执行数据服务调用,而不是它们来自的服务器域。通常,网络浏览器会阻止 javascript 和其他网络技术进行跨源或跨域调用。这些是 js 脚本来自 google.com 的调用,现在可以调用 microsoft.com。好吧,浏览器会停止该调用,因为 google.com 和 microsoft.com 是不同的域。

这个例子很明显,所以让我们尝试一个不太明显的例子。您在 blogs.yoursite.com 上的脚本尝试调用 shopping.yoursite.com 上的服务。现在这些父辈都是 yoursite.com 但他们仍然可以被认为是跨域的,而且通常是。 CORS 允许您(在 html 开发人员方面)说我信任这些域。通过信任他们,现在您可以调用他们的网络服务,即使他们本来是跨域调用。

CORS - 跨源资源共享。 概念和技术集,可实现跨域共享 resource/data。例如,从您的页面 /yourDomain.net 您尝试对 myDomain.net 进行 ajax 调用以 post 一些数据。阅读这篇 Wikipedia and MDN 篇文章。

REST - 具象状态转移。一组 标准和指南 ,定义了系统相互通信的特定方式。它遵循无状态 http 标准,其中 URI 代表资源,客户端可以使用 http 动词处理它们。例如获取 weatherApp.com/weather/rome。参考 this.

HTTP - 超文本传输​​协议。用于传输数据 to/from 网络服务器的标准 协议 。检查此 W3 specifications and Wikipedia 页面。

XMLHttp - 类型的请求 通常用于ajax 从客户端(主要是 html、javascript)应用程序调用 Web 服务器。它适用于 http 标准。不过不限于 XML。阅读 this and this.

现在,所有 REST、XMLHttp、CORS 都以某种方式在 HTTP 上工作,这意味着它们都使用 http 基础设施。

其中 any/all 可用于创建功能齐全的现代应用程序。例如,Web 应用程序可能使用 XMLHttp 请求进行 REST 服务调用以获取一些数据。它还可以利用 CORS 将 get/post 数据传送到另一个域。不用说了,整个系统依赖http!