https://zhuanlan.zhihu.com/p/406353848
跨域和跨站的区别
涉及到 Web 安全,会有一个跨站的概念,跨站和跨域是不同的。
跨域
跨域即 cross-domain,它和同源(same-origin)相对,要求两个 URL 的协议、端口号、域名都一致才能称为同源。
跨站
跨站即 cross-site,它和同站(same-site)相对,对协议和端口号无要求,只要两个 URL 的 eTLD + 1
一致,就能称为同站。那么什么是 eTLD
呢?
eTLD
即 effective top level domain,有效顶级域名,比如 http://juejin.cn
的 eTLD
是 .cn
,http://test.org
的 eTLD
是 .org
,而 http://chorer.github.io
则是 github.io
(注意不是 .io
)。而 eTLD + 1
指的是有效顶级域名 + 二级域名,比如对于 http://juejin.cn
来说就是 juejin.cn
,对于 http://test.org
来说就是 test.org
。
PS: 不过需要注意的是,same-site 实际上也分为两种,一种是上面定义的协议松散型 same-site,即 scheme-less same-site,在判断是否同站时并不需要考虑协议;另一种则是协议严格型 same-site,即 schemeful same-site,要求协议必须一致才能认定为是同站。