DNS-HOST-IP

DNS-HOST-IP之间的一些关系。

太长不看版
就是所有设备(你的个人电脑,服务器,手机等)通过网络才能交互。基于IP协议。(当然还有蓝牙啥的,不在讨论范围内)

IP协议就像打电话,你要给对方打电话,就要知道对方的电话号码。而IP协议就要知道对方的IP。

但是无论是电话号码还是ip都是很没规则的数字,不好记。对人不友好。对机器友好(涉及到存储,数字占用空间小,处理起来也快)
这时候就有了DNS-域名映射(类似于114查询台)。  

HOST呢,就像是你手机里的通讯录(更早的座机时代,就是一本电话簿)

配置好了手机通讯录,你下次要找张三,李四,你直接通过名字,点一下就打过去了。而不用记对方的具体的电话号码。
同理,配置好了host,你直接在浏览器输入域名,就会自动访问对应的IP的服务器了。不用记录服务器的具体IP

配置Host通常是找到你的Host文件,然后在里面加上一行`IP 域名`的映射就行了。
格式是:
IP`空格`域名
形如
192.168.0.1 www.baidu.com
是把百度的域名设置成了 192.168.0.1
你直接在浏览器访问域名(www.baidu.com),它就自动找到192.168.0.1 这个IP来访问了。
`注意`这个配置只是个演示,具体到使用的时候,还是要根据实际情况来设置ip和域名的映射关系的。
略微详细版
关于`DNS`,`HOST`,`IP`其实涉及的知识挺广的,展开说,可以把整个计算网络的相关知识都囊括进来,
因为这个是简单的类似于科普性的文章,所以对于一些扩展性的知识,可能会掠过,主要以自己的理解为基础,讲解一下三者之间关联的部分。

因为时常会碰到测试的同学,对于HOST IP之类的没有什么概念。
导致在测试的时候,会不太清楚为什么要切换一下Host,又为什么要配置Host才能调试测试环境。

整个问题浓缩一下,可以转化为下面这个问句:

`我们的电脑和电脑之间到底是怎么通信的`

首先,我们每台电脑都是独立的,要想互相通信,就要建立连接(通常是TCP/IP协议,而这个协议呢,是要知道对方的IP地址的。)
就像我们每个人也是独立得个体,有自己的思想,要要和别人“交流”,也得建立连接(你喊对方一声,或者打个电话,或者写封信,都属于和对方建立了连接)
计算机的连接抽象的看,和人与人建立连接没有太大区别。
建立了连接之后,再通过语言,文字,图片等方式向对方传递自己想要表达的信息。

接下来以打电话为例子:
比如你想给晓天打电话,知道我叫晓天是没什么用的,你得知道我的手机号才能打给我,和我交流。
就像我们知道百度的域名是www.baidu.com,如果没有DNS服务解析或者解析错误的话,你是无法访问百度的。
但是无论是电话号码还是IP都不是规律性很强的数字,不好记。对人不友好。对机器友好(涉及到存储,数字占用空间小,处理起来也快)
这时候就有了DNS-域名映射。  
DNS是一种`服务`,你输入域名,它会自动解析成IP。(基本上所有的能联网的设备的操作系统都会带这个。)
DNS有本地的(通常就是你本机。一个),区域的(N个),全球好像有几十个根吧。 类似  家-国-天下

而你本地有HOST配置,DNS服务器。DNS服务器还有根域
(它们三者的关系你可以理解为你的本地的DNS是`根域`的一个代理,也就是它的小弟,你的HOST配置,是本地DNS服务器的小弟。)
你发起了请求之后,会先去看看本地的host里面有没有配置www.baidu.com这个域名的ip地址,
如果没有就去本地的DNS缓存里面看看有没。再没有,本地DNS就会去找他的大哥(根域)问问他知不知道www.baidu.com的ip地址。
最后拿到了IP地址,你就会进行后续的2 3 4(握手,建立连接)
就像以前的传呼机,让电台帮你查查某个人/团体的号码(不确定哈,看电影看到过这种情节。哈哈)

所以呢,HOST也可以当做是你脑子里记了一些联系人的电话,如果想给人打电话了,首先就是在大脑(HOST)里回忆,想不起来,就会去找找电话簿(DNS)看看上面有没有。
如果没有,那就去问问周围人(根域)看看有没有人知道,如果都没人知道,那就“解析失败”,没法给那人打电话了。
请求也是这样,如果解析域名失败,也就没办法和对方建立链接了。
回到你刚才的那个问题,如果你的请求都是通过  www.xxx.com 之类的域名的方式请求的,那么你就可以通过配置host的方式,
直接标明如果是这个域名,你要访问哪个ip地址,这样就可以实现正式/测试环境的切换了。
例如 
www.baidu.com 192.168.0.1  //这个表示,你如果访问百度。实际访问是192.168.0.1这个ip。
www.baidu.com 180.101.49.12 // 这个表示你如果访问百度,实际访问的是180.101.49.12这个ip。
前提是。你在host中这样配置哈。

类似于,我们都比较相信自己的记忆,某个人号码记得就是xxx,那就直接打过去(可能自己会记错,或者对方已经换了号码也说不定)。
而如果记不住对方的电话号码。就开始查电话簿了,(虽然也可能会写错或者对方换了电话号码,甚至同一个个联系人记录了两次,这种情况下,我们通常都是自己判断到底打哪个,但是host文件只会匹配第一个,需要注意一下。)

但是如果你的请求直接就已经是写死的ip地址了。
那可能就要玩儿一下`代理`了。把某个ip的请求都拦截下来,再转发到你实际要请求的那个ip地址。(就像电视里头那种摇号电话,让接线员转接)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值