同源策略

“源”的概念很早之前就有了,但其标准定义一直不够精确。

RFC 6454 定义并描述了同源策略的原则,更重要的是,推出了“源”首标。

“源”由协议、主机、端口三部分组成。在序列化形式中,“源”看起来类似 URL:协议和主机由 :// 分隔,端口前面是一个 :。对于端口与协议默认端口相同的源,端口可以省略。

由于大部分序列化源使用 80 端口,与默认的 HTTP 端口相同,所以源中通常省略端口。

下面是一个“源”的例子:

1
http://example.com:8000

按照“源”的定义可分解如下:

  • http :协议
  • example.com :主机
  • 8080 :端口

同源策略的原则是:如果两个源的任何一部分不同,浏览器就将它们看作完全不同的源。

”源“标准的出现替代了之前标准化程度低、更为复杂的旧规则——”同域策略“。源模型清除了所有用于 Web 应用程序的跨域规则。

HTML5 跨文档消息传递通过允许消息在不同源之间交换,克服了同源策略的限制。