如何搭建一个自己的网站-域名篇(上)
咪哥杂谈
本篇阅读时间约为 7 分钟。
1
前言
随着互联网时代来临,浏览器成为了日常必备的电脑工具。
而域名,但凡用过浏览器的朋友都知道它长什么样。
比如百度:
那我们用了这么久的域名,你知道它的组成以及作用是什么吗?
带着这个问题,继续往下读。
2
域名的组成
依然以百度为例:
从形式上来说,域名由 . 来进行分割英文组成。
如果按照正常的阅读方式,从左往右看。
但是,看域名则不同,需要你从右往左看去理解。
首先在最右边 .com 的域名位置,有一个专业名词,叫顶级域名。
.com,商业通用域名
.gov,政府网站域名
.edu,教育网站域名
.org,非盈利组织域名
.net,网络服务商域名
.........等等
其次,从右侧数,倒数第二位的, baidu 。
排在顶级域名的左侧域名,都称之为子域名。如果细分,那对于 baidu 的专业名词,叫二级域名。
同时 baidu.com 这一整串,也可以叫二级域名。
二级域名一般是人们基于产品、公司等来创建的名称,主要作用就是好记。
接下来,就是 3w 了。
我们经常说的 3w 是什么意思呢?
www,原本英文:World Wide Web。中文,万维网。
是一个透过互联网访问的,由许多互相链接的超文本组成的系统
wiki百科
如果读了还是不明白,那我简单用一句话概括下:
日常浏览网页就是在使用万维网,而有一些互联网常用的服务,就不是使用的万维网,比如发邮件、ftp文件传输等。
PS:互联网不等同于万维网,万维网属于互联网中的"子服务"之一。
对于 www 来说,告诉你访问的就是 web 服务,那么,又问题来了。
当我们访问一个网页时,www 是必须要带上吗?那你觉得 3w 会是三级域名吗?
答案:
www.baidu.com 属于二级域名。
3w 俗称万维网,只是大家“默认”的域名前缀,但它并不是必须的。
譬如,百度知道:
3
域名以及域名系统
组成讲完了,我们来聊聊域名的作用。
一说到域名,那必然离不开一个词 - DNS 。
DNS,英语:Domain Name System,中文:域名系统。
是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
wiki百科
看了概念还没懂?没关系,让我用通俗易懂的例子来给你解释一下。
现在我们浏览网站的数量非常多,每个网站背后都对应着 ip ,就像你的电脑也对应着一个公网 ip 一样,比如下面:
如果网站全部用 ip 进行访问,那肯定很难记住,所以就需要一个类似地址簿一样的东西,根据名称,去查询背后的地址。
比如,有天中午你饿了,于是你打开美团外卖,订了"麦当劳"。
此时外卖小哥收到来自你的订单,"麦当劳"是全国连锁店,那具体外卖小哥要去哪里取餐呢?
通过美团的提示,查询到离你最近的麦当劳地点,提示小哥应该去"前门西大街店"的麦当劳进行取餐。
所以,这里的"麦当劳"可以对应成域名,"美团"对应成 DNS 服务器,前门西大街麦当劳店的具体地址则对应成 ip 地址。
那回到网络世界里,我们每访问域名一次,都需要经过 DNS 服务帮我们进行解析。
可见 DNS 非常重要,因此 DNS 服务器的设计,就引出了高可用,高并发,分布式的概念。
然后,就有了按照不同层来划分 DNS 服务器的设计,如下图:
根 DNS 服务器:返回顶级 DNS 服务器的 ip 地址。
顶级域 DNS 服务器:返回权威 DNS 服务器的 ip 地址。
权威 DNS 服务器:返回相应主机的 ip 地址。
是不是觉得这个分层和域名的组成有些类似?
先对着这几个基础概念眼熟下,不明白没关系,继续往下看。
眼熟上述概念,那再来看看我们请求域名后,解析ip的流程是怎样的?
依旧是来看一张流程图,一共有十步,用文字来对照解释:
从上往下,从 1 到 10来看。首先电脑通过浏览器访问一个域名,比如百度 www.baidu.com 。
1. 浏览器检查是否有 DNS 相关缓存,通过域名查找 ip 。
比如谷歌浏览器:但由于谷歌浏览器的新版本去掉了 DNS 列表查看功能,目前你能看到的只有清理缓存按钮了。
如果你想看到浏览器缓存的 dns 列表,还有一种方法。
访问 chrome://net-export/ ,进行网络日志下载。
将 json 日志文件上传到此网站:https://netlog-viewer.appspot.com/
实际上,就像图中表格一样,域名和 ip 地址相对应,就是 DNS 所做的事儿。
如果找到,则直接返回 ip ,若没有,进行下一步。
2. 如果浏览器 DNS 缓存失效,则去本机的 hosts 文件中进行查找。
windows和Linux的hosts文件路径不同,自行网上搜索。
有的时候,GitHub访问不了,知道为什么改 hosts 文件起作用了吧?
如果找到,则直接返回 ip ,若没有,进行下一步。
3. 如果 hosts 文件中没有对应的映射,则访问本地 DNS 服务器。
本地 DNS 服务器,一般都是由网络供应商提供,比如中国联通、电信自动分配。说白了,就是服务商的某个机房。
如果找到,则直接返回 ip ,若没有,进行下一步。
4、5. 本地 DNS 服务器依然没有找到相关 ip。
那本地 DNS 服务器就会问根 DNS 服务器。
本地DNS:"根老大,告诉我下 www.baidu.com 的 ip 地址呗!"
根老大听到本地 DNS 小弟的召唤后,
回复到:".com结尾的域名啊,我给你它对应的顶级域名 DSN 服务器地址,你去问它!"
6、7:本地 DNS 服务器询问顶级 DNS 服务器。
于是本地DNS小弟又再次请求了顶级域名DNS服务器。
本地DNS:"顶老二,老大叫我来问你,www.baidu.com的 ip 地址,告诉我一下呗!"
顶老二:"嗨,不就 www.baidu.com 吗!小意思,我给你它的权威 DNS 服务器地址,你去问它!"
8、9:本地 DNS 服务器询问权威 DNS 服务器。
本地DNS:"权三哥,顶老二都让我来问你,www.baidu.com 对应的 ip 地址,到底是啥啊!!"
权威DNS:"别急,老弟,我给你查查。查到了!220.181.38.148"
PS:权威DNS服务器,就是针对特殊的 ip 进行解析的服务器,所谓的权威是针对特定域名来说的。
下图只是我为了获取百度 ip 而做的例图:
10:本地 DNS 服务器拿着真实的 ip ,开开心心地将 ip 返回给了电脑。
最终,电脑与目标 ip 成功地建立了连接。
故事完。
当你明白了根、顶级、权威 DNS 服务器的基础概念之后,再去看解析流程后,才会有一种"恍然大悟"的感觉。
那关于 DNS ,它和域名的关系,到这里就结束了。
除了帮助域名解析以外,其实 DNS 还有一个作用,就是负载均衡,那这里就不过多讲了,感兴趣的可以看下我后面分享的极客时间链接。
4
结语
今天这篇文章,足以让你了解域名的常用知识了。
对网络感兴趣的同学,建议消化一下。
本篇内容是原理部分,授人以鱼不如授人以渔,一直是我推崇的文章风格,所以不能光有结论,弄清原理也是非常重要的。
关于 DNS 的原理部分,是我当初在极客时间上,学习刘超老师趣谈网络协议写下的总结。
如果你对原文感兴趣,可以自行复制链接,发送到微信对话框,打开进行查看:
https://time.geekbang.org/column/article/df26400ec571b6c6353e9fe493491881/share?code=ba5SNpiZcgP6gFH2N4CPup0%2FDIiiparYLkzB803qb-s%3D
(20个免费试读名额,先到先得)
下一篇就来直接上手介绍,如何申请我们自己的域名,以及一些配置和注意的点。
那关于本篇,如果你有什么疑惑点,欢迎评论区留言探讨。
看到这里,绝对是真爱学习粉了,今天的 2700+ 字内容,你学废了嘛!