注册 登录  
 加关注

网易博客网站关停、迁移的公告:

将从2018年11月30日00:00起正式停止网易博客运营
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

老和山小和尚

敬天爱人

 
 
 

日志

 
 
 
 

混乱的顶级域名  

2012-07-16 22:22:53|  分类: 开发相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
什么是顶级域名?

按照[1]的说法,顶级域名是以国家、种类、组织区分的,所以一般以下几种:

1. 国家顶级域名:如.cn,.us,都是两个字符的组成[2]。
2. 国际字符的国家顶级域名:如.中国,.新加坡。这些字符都是非ASC码字符,在访问时会以Punycode的形式访问[3]。
3. 一般普通的域名,它又分为两类:
   a. 没有赞助的普通域名,如果.com, .org等等。我们使用的大多数域名应该都归为此类。
   b. 有赞助的普通域名,如.edu是美国教育部赞助的,.gov是美国政府赞助的[4]。
4. 网络基础设施顶级域名,如.arpa,它是第一个顶级域名,但仅局限于DNS反查用的,比如通过IP查域名。

各国家的顶级域名又被各国根域名组织分配,有时又加上类别名称,所以出现了 .com.cn这种顶级域名。总体来说,ICANN分配的时候还是比较简单的。

实际情况

但是实际的情况又是如何呢?“.com”,“.co.uk”,“pvt.k12.ma.us”都是合法的顶级域名。像第三种域名,我都不知道怎么会出现的[7]。

所以出现了后缀名服务[5],就是把当前实际有效的顶级域名都罗列出来,以便我们能知道某个域名哪一项是顶级域名,哪一项是子域名。这里有所有合法的顶级域名列表[6]。

而且这些实际顶级域名还有通配符和感叹符号规则:

*.hokkaido.jp表示.a.hokkaido.jp等任意字符串都可以是顶级域名。
!pref.hokkaido.jp表示在上述通配符的情况下,可以有例外,也就是说pref.hokkaido.jp可以是完整域名,pref是子域名。

错误识别域名有什么危害?

主要是cookie跨域的问题。如果浏览器把域名xx.co.uk中uk识别为顶级域名会怎么样?它认为.co.uk是顶级子域名,所有.co.uk下面的cookie都会公用了!

我的一个实现

我的代码参考了regdom库[8],修正了它代码里面的许多问题,重构了一下,希望对大家有点帮助。我的代码库在这里:https://github.com/yaoweibin/parse_domain

[7] http://www.ietf.org/rfc/rfc1480.txt,感谢冰河的提醒。pvt.k12.ma.us域名表示意思是美国麻省的私立高中,pvt是private,k12应该是高中,ma是Massachusetts,us是美国


  评论这张
 
阅读(1588)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018