多个顶级域名?

kum*_*mar 8 domain-name tld

在普通 URL 中,您有协议、子域(可选)、域名、顶级域和子目录。

例如:http://www.google.com/path。这里www是子域名,google是域名,com是 TLD;path是这里的子目录。解析这是一个简单的编程任务。

但当存在多个 TLD 时就会出现问题。例如:www.google.co.in/path。这里co.in是顶级域名。但我看到还有一个有名字的网站www.co.in

我的疑问是:

  • 一个 URL 可以有多少个顶级域名?在 URL 中,如果可能存在多个 TLD,如何查找顶级域?
  • 在上面的示例中,google.co.in它不是 的子域co.in,那么为什么www.co.in会解析到不同的网站呢google.co.in

pet*_*oak 2

如果我必须编写一个算法来决定“www.co.in”属于印度顶级域名(TLD)而“www.google.co.in”属于印度二级域名(SLD),我会去在这里并获取列表:

https://wiki.mozilla.org/TLD_List

然后,我会像这样处理我的 URL:

  1. 将 URL 的最后部分与列表中的所有 TLD 进行比较并找到匹配的 TLD。[www.google.co.in -> 在,www.co.in -> 在]
  2. 如果未找到 TLD,则该 URL 无效。
  3. 如果找到 TLD 并且 URL 包含三个或更少部分,则返回 TLD 作为结果并退出。
  4. 如果找到 TLD 并且 URL 包含三个以上部分,请在 SLD 列表中进行第二次搜索。将 URL 的结尾与模式“.SLD.TLD”进行比较。
  5. 如果未找到条目,则返回 TLD 作为结果并退出。
  6. 如果找到条目,则返回 SLD.TLD 作为结果并退出。