在互联网领域,eTLD 指 Effective Top-Level Domain(有效顶级域名)。
例如:juejin.cn 的 eTLD 是 .cn
eTLD+1 则被称作可注册域名,就是在有效顶级域名后加一级,允许企业或个人注册,再下边的域名就由注册人自己管理。
“私有后缀”(Private Suffix)是指:不属于 ICANN/国家级注册局的后缀,但由某个平台/公司控制的域名,被列入 Public Suffix List(PSL)的 PRIVATE 区域,用来把多租户平台的“用户子站”当作安全边界。
多租户平台(如 GitHub 、Blogger、Heroku、Vercel…)会把子域分配给用户:user.github.io、foo.herokuapp.com 等。
为了安全(主要是 Cookie 作用域、同站策略等),浏览器和库需要把 github.io、herokuapp.com 这类域名当成“后缀”,防止用户给整个平台域设置 Cookie。
公共后缀(ICANN 部分):.com、.org、.com.cn 等,是真正可直接在其下注册二级域的后缀。
私有后缀(PRIVATE 部分):github.io、blogspot.com 等,是平台自己的域,不是注册局,但被当作“后缀”用于安全边界。
对 eTLD+1(“可注册域名”)的影响
以 foo.github.io 为例:
代码示例(tldextract)
import tldextract
print(tldextract.extract('my.github.io'))
print(tldextract.extract('my.github.io', include_psl_private_domains=True))
# 不想每次都包含这个长参数,可以生成自己的extract函数
extract = tldextract.TLDExtract(
include_psl_private_domains=True
)
print(extract('my.github.io'))
什么时候开/关“私有后缀”