尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

为什么有的网站有 www,有的没有?-起源篇

为什么有的网站有 www,有的没有?-起源篇 封面图是世界上第一台网页服务器的照片即蒂姆·伯纳斯-李Tim Berners-Lee在 CERN 使用的 NeXT 计算机。文章首发在我的个人博客欢迎前去参观https://markxu.icu/blog/why-does-some-website-has-www-1-cnwww也就是万维网——World Wide Web是一个很基础的概念甚至在高中老师就已经教过了。但今天在看一些博客网站的时候突然注意到一件以前从来没有认真想过的事有些网址是www.阿巴阿巴.com有些网址却只有阿巴.com。以前我一直以为所有网站都有www只是浏览器觉得这几个字母可以不显示替我们藏起来了。但今天仔细研究了一下发现其实背后不止是浏览器的隐藏其实现在的技术早就没有必要使用www了更多的是历史遗留习惯而且越来越多的网站也已经不再使用www了。所以这篇文章主要是分享下www这个网址前缀的起源来历后面再写一篇讲讲为什么后续又消失了和现在我们都怎么使用域名。先从技术上讲讲为什么会有www最早期的互联网与现在的互联网从基础设施上就有很多差别所以当初的很多协议和功能设计的初衷与现在也大不相同所以如果好奇www为什么存在我们或许需要从互联网的最开始讲起。互联网初期-1969大家通常认为的最早的互联网或者说是互联网的前身 ARPANET 1969 年诞生时其连接的是几所大学和研究所的计算机每台机器有一个主机名直接注册在中心维护的 HOSTS.TXT 里后来才被 DNS 替代。这个时候大家的初衷很简单就是把几台机器连接起来让他们可以相互通信。因为机器很少所以这个时候也还没有域名的概念也不需要域名来多一层转换只有机器名→地址的映射这也足够了。这段时间的发展具体可以看看这一篇文章漫谈互联网历史【7】- ARPANET虽然这个系列的其他文章与本文讨论的无关但是写的真的很有意思很推荐多去了解了解DNS的出现域名-1983后面随着越来越多的机器加入整个网络已经完全与以往不一样了。在1983年的1月1日所有连网主机从 NCP 切换到 TCP/IP也被称为TCP/IP Flag Day。所有的机器都停止支持旧协议并同时支持TCP/IP让以前“单网、扁平、中心化”的架构变成了“多网、分层、可委托”的架构。这样也满足了越来越多机器加入网络的需求。随着越来越多的机器加入原本由中心人力维护的 HOSTS.TXT 文件开始膨胀在那时存储还不像今天这样量大管饱的时候每台机器都要存储一个 HOST.TXT 文件愈发变得不现实更难以接受的是当时如果网络有些变动管理员需要重新编译一遍 HOST.TXT 文件然后通过 FTP 协议传输给所有机器这通常一周更新一两次这个延迟也是不可以接受的。后来在 1983 年的 11 月 23 号Paul Mockapetris保罗·莫卡派乔斯 设计 DNS并提交了 RFC 882 和 RFC 883后在1987年被 RFC 1034 / RFC 1035 替代。其核心思想可以总结为下面几条一致的名字空间名字里不要塞网络号、地址、路由信息分布式维护全量数据库不能集中存必须分片缓存管理权下放谁拥有数据谁控制更新/缓存策略通用目录服务不只查主机地址还能查邮箱、以后未知类型这样就保证了一个去中心化的每个组织可以管理自己的机器的命名方式方便网络更新的分布式系统。www存在的前提前面讲到了所有组织都可以自己管理自己的机器组织通过自己分配域名的方式就可以很方便的进行职责分配。虽然从1980年就有了端口技术一台机器可以跑多种服务但早期机器贵、资源少没法让一台机器同时处理web服务和邮件服务所以早期采用的方式是不同机器运行不同服务就像下面这样ftp.example.com 文件传输 mail.example.com 邮件 news.example.com 新闻组这同时带来的好处也有不少管理边界——邮件归系统管理员管Web 归新来的网络组管各管各的机器互不背锅。故障隔离——邮件服务崩了不能影响 Web反之亦然。DNS 设计理念——域名系统一开始就是主机名→IP的映射不是服务名→IP。你给每台机器起个名字跑什么服务就叫什么名。所以www本质上就是一个三级域名没有任何特殊特权。www的出现 -19891989 年 Tim 封面人物在 CERN 提出了万维网概念其重点不是简单规定网站前缀呼吁大家都使用www作为网络服务域名而是提出 URL/HTTP/HTML 这一套超文本系统让文档可以跨机器互链、跨组织发布。就比如CERN 第一台 Web 服务器用的是 info.cern.ch不是 www.cern.ch。到了 1990 年底Tim 已经在 CERN 成功推出了第一个 Web 服务器和浏览器从而证明了该提议背后的理念是可行的。他直接在 NeXT 计算机上编写了相关代码并让这台服务器一直运行在办公室里。为了避免有人不小心关闭这台服务器他在计算机上贴了一张用红墨水写的标签上面写着“这台机器是服务器请勿关闭它”但 Web 作为一种新服务接入已有网络时管理员通常会给它单独主机名。已有 ftp/mail/news 等按服务命名Web 就沿用 www。一点点后续 -1990swww命名的流行或许也与Mosaic 浏览器的发布有关系。1993年NCSA 发布 Mosaic第一个让大众能看图、点链接的浏览器。NCSA 自己的 Web 服务器叫 www.ncsa.uiuc.edu。Mosaic 内置的书签和示例链接全是这个地址全球用户第一次接触 Web 时看到的就是 www。在后面的Yahoo1994、Amazon1994、eBay1995这几个商业互联网的出现其新网址也都沿用了www前缀。也因此被大众所熟知。Whywww?那么这么多名字为什么要用www呢其实这个问题也有人曾经发邮件问过Tim可以点击链接看下 Tim 给的解释。我在这里简单翻译总结下www 是他建议的不是规定的“It is a convention. I suggested it early on, in this guide…”他在一个 Style Guide写给 webmaster 的指南里建议的,就是他写了篇文章说你们可以这么干。为什么不用机器本来的名字“An alias was a better alternative to ‘pegasus.foo.com’ which typically resulted when someone who happened to have a machine called pegasus started to run a web server…”他的意思是早期很多人随便拿手边一台叫 pegasus 的机器跑 Web结果别人访问就得用 pegasus.foo.com。这名字毫无意义用户记不住也看不出这是干啥的。所以他建议起个别名叫 www一看就知道是 Web 服务器。为什么选 “www” 这三个字母因为已有的惯例就是按服务缩写命名他只是把 Web 也塞进了这个已有的命名体系里。选 www 不是因为它特别是因为它跟 ftp、mail 一个套路。为什么不直接用裸域 foo.com他说了两个原因“Typically early webmasters could not have comandeered the ‘foo.com’ address itself.”意思是裸域 foo.com 是域的根标识通常由系统管理员控制早期跑 Web 的人webmaster没权限去改裸域的 DNS 记录。他们只能在自己能控制的范围内加个子域。“You don’t have this flexibility of configuration if you point everyone at ‘foo.com’ itself for all services.”另一个原因是灵活性用别名 www以后 Web 服务长大了可以轻松把 www 指向一台更大的机器不影响裸域和其他服务。一个有趣的细节Tim 在回答的最后说到他是 “of two minds about it now”现在对此心情复杂。因为到 1999 年Web 已经成了很多公司最大的服务他觉得也许该让 Web 占住裸域了。但他同时强调只能选一个不能两个都当主站否则缓存效率减半。这也与我们下一篇讲现在网络为什么又不使用www而是可以直接链接裸域名的想法一致。
返回列表