为什么 www.web.dev
和 static.web.dev
算作同一个站点,而 your-project.github.io
> 和 my-project.github.io
算作不同的站点吗?
此页面 ( https://web.dev/samesite-cookies-explained/ ) 的一部分让我感到困惑:
Key Term:
If the user is on www.web.dev and requests an image from static.web.dev then that is a same-site request.
The public suffix list defines this, so it's not just top-level domains like .com but also includes services like github.io. That enables your-project.github.io and my-project.github.io to count as separate sites.
最佳答案
我写了这篇文章,所以我会尝试回去澄清该部分。在这种情况下,术语“站点”具有特定的技术含义,比我们仅指网站时的定义更加严格。这里需要理解的重要概念是“站点”代表安全边界,即该点下的所有内容都由单个管理组织控制。
因此,web.dev
是站点,它是有效的顶级域 (dev
) 加上左侧的单个标签 (web.dev)。
)。其下的任何子域仍由 web.dev
站点控制,例如例如,images.web.dev
或thumbnails.images.web.dev
。由于服务器只能创建任意数量的子域,因此它们对于将发送到该域的数据与浏览器分开没有任何意义。
术语“eTLD+1”也经常使用,这意味着有效顶级域+左侧1个标签。该定义中“有效”的原因是公共(public)后缀列表的出现。这就是允许在 GitHub 网站或 Google App Engine 等托管服务上分离网站的原因。
例如,com
就是一个 TLD。这意味着 a.com
、b.com
和 c.com
都是单独的站点,因为每个域名都必须单独注册。但是,sub1.a.com
、sub2.a.com
和 sub3.a.com
都可以由该域任意创建,而无需任何注册。
但是,github.io
是一个有效的 TLD,因为它托管许多单独的项目,因此 a.github.io
、b.github.io
和 c.github.io
都是单独注册的项目。但是(如果平台允许)sub1.a.github.io
和 sub2.a.github.io
是同一项目的一部分。
您可以在此处查看定义:
关于cookies - 为什么从 "www"子域到另一个子域的请求被视为 "same-site"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59395892/