01-跨域和跨站的基本概念

介绍一下跨域和跨站的基本概念。

一级域名 二级域名 三级域名

一般来说就是比如www.baidu.com.com是一级域名; baidu是二级域名; www是三级域名。其后同理。

跨域和跨站的区别

  • 首先要理解的一点就是跨站和跨域是不同的。
    • “站”:
      • 同站(same-site)和第一方(first-party)是等价的。
      • 跨站(cross-site)和第三方(third-party)是等价的。
    • 但是与浏览器同源策略(SOP)中的「同源(same-origin)/跨域(cross-origin)」是完全不同的概念。

同源策略的同源,是指两个 URL 的“协议+主机名+端口”3者都一致。例如,https://www.taobao.com/pages/...,它的协议是 https,主机名是www.taobao.com,端口是 443,另一个url的这3者与之都一致才能叫“同源”。

同源策略作为浏览器的安全基石,其“同源”判断是比较严格的,而相对而言,Cookie中的“同站”判断就比较宽松:

只要两个 URL 的 eTLD+1 相同即可,不需要考虑协议和端口。 其中,eTLD 表示有效顶级域名,注册于 Mozilla 维护的公共后缀列表(Public Suffix List)中,例如,.com、.co、.uk、.github.io 等。而 eTLD+1 则表示,有效顶级域名+二级域名,例如taobao.com等。

举几个例子,www.taobao.com和www.baidu.com是跨站,www.a.taobao.com和www.b.taobao.com是同站,a.github.io和b.github.io是跨站(注意是跨站)。

文章目录
  1. 一级域名 二级域名 三级域名
  2. 跨域和跨站的区别