作为一名立志要成为互联网大牛的IT人士,时至今日竟然还不知道在导航栏输入的究竟是什么,有点羞羞的脸红。今天就小小的了解一下。
url的组成格式
- protocol 协议,常用协议是http协议
- hostname 你要访问的主机地址,可以是域名,也可以是ip地址
- port 你要访问的端口号,如果不填,则默认端口为80端口
- parameter 参数,如果你需要向服务器传递参数,在这个地方输入
- query 查询字符串 如果需要在服务器上查询内容,在这里编辑
- fragment 片段,你要查询的网页可能分为几个不同片段,如果想要访问网页后直接到达这个位置,可以在此设置
关于域名的认识
首先我们要知道,万维网不是网际网络,万维网只是运行在网际网络上的一个应用。它的功能是能够实现网络资源间的互访,最初的方式是通过ip地址进行访问,但是IP地址是计算机或计算机组之间的标识,对人们来说不方便记忆,所以产生了一种字符标识的方法,也就是我们所说的域名。实现域名和IP地址之间相互映射的东西叫做域名系统,他是一个分布式数据库,具体的映射方式,可参考下面例子
以查询zh.wikipedia.org为例
- 客户端发送查询报文"query zh.wikipedia.org"至DNS服务器,DNS服务器首先查询自身缓存,如果存在记录则返回结果
- 如果记录老化或者不存在,则
- DNS向根域名服务器发送查询报文"query zh.wikidia.org",根域名服务器返回.org的权威服务器地址,这一级首先返回的是顶级域名的权威域名服务器
- DNS服务器向.org域的权威域名服务器发送查询报文"query wikipedia.org",得到.wikipedia.org域权威域名服务器地址。
- DNS服务器向.wikipedia.org域权威域名服务器发送"query zh.wikipedia.org",得到主机zh的记录,存入自身缓存并返回给客户端
下面是转载的一段话,更加形象,具体
首先,客户机会检查浏览器中是否缓存了域名所对应的IP地址,如果没有找到,那么就检查操作系统(hosts文件)缓存,系统缓存中方没有,就检查路由器缓存,如果路由器中缓存还没有,就要去向本地域名服务器发起请求。
如果本地域名服务器还没有,就要去向根域名服务器发起请求。
我们先来看一下域名服务器的结构:
最高层次的域名服务器是根域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址,
接下来是顶级域名服务器,然后是权限域名服务器。
当本地域名服务器向根域名服务器发起查询时,该查询是一个迭代查询,这就意味着,根域名服务器要告诉本地域名服务器的内容,要么是一个我们要访问的域名对应的IP地址,要么是本地域名服务器该向哪个顶级域名服务器发起查询请求。当根域名服务器中没有我们要查询的确切IP地址时,根域名服务器会告诉本地域名服务器去哪个顶级域名服务器中查询,对于顶级域名服务器,也做类似操作。至于为什么是这样的查询结构,这主要是为了减少服务器的负担,具体的内容本文就不再讨论了。
而对于本地域名服务器来说,它给客户机返回的也只有两种情况,要么找到IP地址,并且返回;要么没有找到,返回报错。