一、URL解析
主要就是判断你输入的是否是一个合法的URl、并且根据你输入的内容进行自动完成字符编码等操作!
服务器真实的地址一般是数字、或者数字加字母、如果我们去记数字或者字母的话未免太长了、所以我们一般会把域名和IP地址进行关联、我们只需要记录域名就好、比如bilibili.com, 所以我们如果需要拿到服务器资源的话,我们就需要对域名进行转换,得到服务器真实的IP地址, 而这个过程我们叫做DNS域名解析、DNS解析是一个递归的过程 在了解DNS解析的过程前、我们需要了解下域名的管理、比如bilibili.com其这些常见域名也是有人管理的那就是root(根域名服务器)但是因为都是属于root管理所以我们一般就不会去写了、所以总结 根域名服务器(共13域名) —管理—> 顶级域名服务器(com, cn, net, gov) —管理—> 权威域名服务器(bilibili, baidu, ali…)
浏览器DNS域名解析
- 查询自己浏览器缓存中有没有对应的IP记录(有就直接拿到IP)* 主机查询下本地文件(hosts)里面有没有对应记录(有就直接拿到IP)* 如果都没有、浏览器会调用解析器(程序写的)向本地DNS服务器发送请求( 互联网服务提供商) 有些本地NDS服务器可能还会记录下你解析了什么域名,哈哈哈,莫非你看黄被记录着了? 、假设本地NDS服务器在本地没有任何根域名服务缓存的时候:* 1、首先查询下根服务器域名、得到根服务器域名后在通过域名查询这个服务器IP,然后得到根域名IP* 2、通过根域名IP进行通讯查询通用顶级域名地址、这次查询会得到域名名称和对应的域名IP* 3、然后会选择一个顶级域名IP进行咨询我们bilibili.com权威域名服务器地址、这样我们就能得到bilibili.com权威域名服务器地址* 4、然后我们在和这个权威域名服务器进行对话、然后向权威域名服务器咨询www.bilibili域名服务器的IPv4地址、得到地址后本地NDS解析器就会把真实的IP地址返回给我们的解析器! 这样NDS解析就完成了!下面我们模仿下DNS解析器过程、使用的是www.bilibili.com!
本地NDS解析过程
第一步查询根域名服务器和根域名服务器IP地址
nslookup // 回车
set type=ns //回车
.//回车、得到一堆根域名服务器地址 Non-authoritative 是因为一般通过缓存得到的结果
set type=a
b.root-servers.net.//随便选一个根域名地址,回车得到对应的IP地址
第二步 和根域名IP进行对话查询顶级域名地址
server 199.9.14.2