URL解析
- https://www.tencent.com/index.html:URL,统一资源定位符,用于定位网上的资源。
- index.html:资源的相对路径,服务器默认访问的页面
- com:一级域名
- tencent.com:二级域名;
- www:主机名,一台具体的机器。命名习惯:网站(www),博客(blog),邮箱(mail)等等。
- www.tencent.com:网站名:服务器名.域名
- https:服务协议
为什么要用域名
一个上线的应用,使用IP地址访问对用户很不友好;一个与应用有关联的域名更加方便记忆。
域名解析过程(通过域名是如何访问到网站的)
计算机不认识域名,无法通过域名直接找到服务器所在主机,所以需要将域名转换为ip地址,这个过程称为域名解析:
1. 主机先查浏览器缓存;
2. 没有的话去查本地hosts文件;
3. 然后去查本地DNS服务器,DNS服务器的缓存。(递归解析:主机先向本地DNS服务器查询,接下里的查询工作都交给本地DNS服务器,本地DNS服务器帮忙找到结果返回给主机);
4. 本地DNS服务器采用迭代解析(本地DNS服务器向一个根域名服务器查询,根域名服务器没有,然后告诉本地DNS服务器接下来应该去查询的顶级域名服务器的IP,本地域名服务器根据这个IP继续向上查询,仍采用迭代的方式)。
- 递归解析:找别人帮忙干活,自己只要结果;
- 迭代解析:全程都要自己干,中途会有人告诉咋干。
- 本地DNS服务器的配置文件中保存了13个根域名服务器的IP地址,根域名服务器会根据请求的域名判断这个域名归属于哪个顶级域名服务器(com、cn等等),然后告诉本地DNS服务器。
操作系统域名缓存hosts文件的作用
hosts文件用来设置IP地址和域名的映射关系,只在本地生效。目前也有很多软件用来做这件事情,比如mac的iHosts。
在企业开发WEB应用时,不可避免地需要调试,调试时需要将应用部署到虚拟机中并启动,每次调试时部署应用的虚拟机都可能会更改。如果一个应用之前部署在IP地址为A的机器中,域名对应的IP地址设为A;如果我们下次将应用部署到IP地址为B的机器中,需要及时将域名对应的IP地址改为B,这样才能通过域名正常访问到我们的web应用。
举例说明:为Tomcat服务上的应用设置域名
- hosts文件位置:C:\Windows\System32\drivers\etc,添加如图所示的一行映射关系。hosts文件:一个系统文件,存储IP地址和域名的映射关系,可以在本地为本机IP地址设置域名,就可以通过该域名+服务的端口号访问到该服务上的应用。IP地址用来定位机器,端口用来定位机器上部署的服务
- 启动Tomcat服务器。
- 访问 www.yujing.com:8080
- 注:在之前的域名解析过程中,原来的localhost和127.0.0.1这条域名映射关系可能已经缓存到浏览器缓存当中,而域名解析的第一步恰好是去浏览器缓存中查,查到的是修改之前的IP地址,所以可能会出现访问www.yujing.com这个域名不到的结果,此时需要清空一下浏览器的缓存,下次解析时,在浏览器缓存中找不到,就会去hosts文件中找。(这就是缓存造成的数据不一致,不同步的一个例子)。
注册域名
通常上线的应用可以通过IP地址加端口访问,但是如果我们想要为该应用设置一个特定的域名,我们需要去DNS服务商那里花钱注册一个未被注册过的域名,注册时可以不设置对应的IP地址,可以后续去网站上设置(解析),当部署应用的机器换了之后,可以再去服务商网站上更改IP地址。