[Guava使用教程]-网络之InternetDomainName
介绍
InternetDomainName
是一个用于解析和操作域名的工具。它可以用作验证器、组件提取器和值类型,以便以类型安全的方式传递域名。
然而,InternetDomainName
行为在某些方面可能会令人吃惊,并可能导致调用代码的错误。本文档解决了这些问题。
详情
公共后缀和私有域
根据相关的RFC规范,可以保证InternetDomainName
对象在语法上是有效的,但不能保证它与Internet
上的实际可寻址域相对应。如果不进行域的网络查找并尝试与它联系,就不可能做到这一点,对于大多数情况,这是无法接受的开销。
不过,确定给定的域名是否代表Internet
上的实际域名通常非常有用。为此,我们使用来自公共后缀列表Public Suffix List (PSL)的数据,该列表由Mozilla
基金会维护。在InternetDomainName
上有一些方法来确定给定域与PSL
之间的关系。用最基本的术语来说,如果domain.haspublicsuffix()
返回true
,则该域可能对应一个实际的Internet
地址;否则,它几乎肯定不会。