标题:央视网发声明:“中央电视台网”严重侵权,已向相关部门举报的技术原理概述。 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Sun, 25 Oct 2020 16:04:14 +0000 作者:jackxiang 地址:https://jackxiang.com/post/10729/ 内容: 背景:央视网发声明:“中央电视台网”严重侵权,已向相关部门举报,这是不可辩驳的事实。但是我对这个中文域名技术实现的原理有点兴趣,于是问一下技术人员和自己查了下。了解到早些年关于中文域名被好多网络公司买的如火如荼,也养活了好多网络公司多少年,在这里我们不讨论中文是否有价值,我们这里讨论一下中文域名的工作原理,下面是RFC文件。 RFC3490 (Request For Comments (RFC),是一系列以编号排定的文件。文件收集了有关因特网相关资讯,以及UNIX和因特网社群的软件文件。目前RFC文件是由Internet Society(ISOC)所赞助发行。) Internationalizing Domain Names in Applications (IDNA) 用户输入国际化域名后,由应用程序完成本地码到Unicode编码的转换,然后再完成Unicode编码到7位Punycode编码的转换,然后由解析器(Resolver)发给DNS服务器进行解析。DNS服务器里存储的不是八位编码的Unicode字符串,而是经过Punycode算法处理的7位编码字符串。 IDNA中应用程序对IDN进行ToASCII和ToUnicode操作的时候会调用Punycode算法完成七位和八位数据的转换操作。 ToASCII和ToUnicode过程参见RFC3490 4.1和4.2小节 一个八位Unicode表示的域名字段的字符串将会被转化成为七位字母数字表示的字符串,并添加前缀“xn--”以便与其他英文域名区分,表示这个域名字段是IDN。 按照上面的解释,我们以侵权域名“中央电视台网.网址”为例,软件环境为ie7简体中文版 中央电视台网.网址. ==>Punycode编码转换. ===> Punycode编码转换后: xn--fiq53l90e917a0tk4ip.xn--ses554g 点击在新窗口中浏览此图片 https://jackxiang.com/attachment.php?fid=601 www.中央电视台网.网址. =怎么编码变为下面这串的呢?=> http://www.xn--fiq53l90e917a0tk4ip.xn--ses554g/ 于是在浏览器里输入这个“中央电视台网”侵权事宜的域名: www.中央电视台网.网址. =怎么编码变为下面这串的呢?===我们在ie7的状态栏中看到==》 http://www.xn--fiq53l90e917a0tk4ip.xn--ses554g/ 在ie6的时代,是不支持中文域名的使用的,为什么现在ie7就支持了呢,我们理解一下RFC3490的内容 “由应用程序完成...”,“程序”这里是指ie7,或者更高浏览器,或者其它浏览器,“完成”指的是浏览器中内置了Punycode的转换,意思是浏览器里面主动加入了中文域名自动转码。ie7简体中文内置了自动转码工具,其它的就不知道了,说白了就是浏览器厂商将这个功能加上去,我们就能用,不加我们就用不起来。 “解析器”也是浏览器内置的。 “DNS服务器解析”我们在网络配置中选择了“自动获得DNS服务器”,我们在这里将DNS服务器改掉,改成了美国的DNS服务器,如:8.8.8.8. 网站是无法打开,这就说明我们选择国外的DNS服务器,中文域名是无法使用的。 从上面的内容中,我们可以总结出,在目前好多浏览器在国内支持中文域名是因为cnnic和浏览器开发商之间进行了合作,让浏览器内置Punycode编码转换。所以来讲应该只有中文版的浏览器才能支持中文域名, 再从DNS服务器解析来讲,只有在国内,或者说是使用国内的DNS服务器才能支持中文域名。 附中文域名编码转换工具:http://tools.jb51.net/punycode/index.php?decoded=%E4%B8%AD%E5%A4%AE%E7%94%B5%E8%A7%86%E5%8F%B0%E7%BD%91.%E7%BD%91%E5%9D%80&encoded=&encode=%E7%BC%96%E7%A0%81 cctv央视网侵权申明:https://news.cctv.com/2020/10/23/ARTIALUGD9zJSrbdIBxuC4gE201023.shtml Generated by Jackxiang's Bo-blog 2.1.1 Release