IP 地址 (Internet Protocol Address):可以想象成互联网上每台设备(比如服务器、电脑、手机)的门牌号码。它是一串数字(比方 IPv4 地址 172.217.160.142 或 IPv6 地址 2001:4860:4860::8888),用于在网络中唯一标识和定位设备,以便数据能够准确地发送和吸收。但纯数字的 IP 地址对人类来说很难记忆和使用。
域名 (Domain Name):是为了方便人类记忆和使用而创建的、代表 IP 地址的易于理解的名称(比方 google.com、wikipedia.org)。
关系:域名和 IP 地址是一对多的映射关系,就像一个人的名字(域名)可以对应他/她的电话号码(IP 地址)。当你访问一个网站时,你输入的是方便记忆的域名,但计算机网络通讯实际必要的是 IP 地址。域名系统(DNS,下面会解释)负责将你输入的域名“翻译”成对应的 IP 地址,这样你的设备才能找到并连接到正确的服务器。一个域名可能对应多个 IP 地址(用于负载平衡或冗余),一个 IP 地址也可以托管多个不同的域名(通过虚拟主机技能)。
DNS 是什么?
DNS (Domain Name System):可以理解为“互联网的电话簿”。它的主要作用就是我们上面提到的“翻译”工作:将人类易于理解的域名(如 www.google.com)解析(或称“翻译”)成计算机网络能够辨认的 IP 地址(如 172.217.160.142)。
工作流程简述:当你在欣赏器地址栏输入一个网址(域名)并按回车时,你的电脑或路由器会向 DNS 服务器发送一个查询请求。DNS 服务器(通常是你的互联网服务提供商 ISP 提供的,大概你可以指定公共 DNS 服务器如 Google 的 8.8.8.8)会查找这个域名对应的 IP 地址。找到后,DNS 服务器会将 IP 地址返回给你的电脑,然后你的欣赏器才能根据这个 IP 地址向目标服务器发起连接请求,最终加载网页内容。假如没有 DNS,我们就必要记取并输入所有想访问网站的 IP 地址,这显然非常不方便。
Host 是什么?
“Host”(主机)这个词在计算机网络中有几个相关的含义,详细取决于上下文:
网络中的设备:最普遍的意义是指连接到网络(如互联网或局域网)并能够参与通讯的任何计算机或其他设备。这包罗你的个人电脑、笔记本电脑、智能手机、服务器、路由器等。每个 Host 在网络上通常都有一个唯一的 IP 地址。
hosts 文件:在操作系统中(如 Windows, macOS, Linux),有一个名为 hosts 的本地文本文件。这个文件包罗了一个 IP 地址和主机名(域名)的手动映射列表。当你的电脑必要解析一个域名时,它会首先检查 hosts 文件。假如在文件中找到了对应的条目,就会直接使用该文件中的 IP 地址,而不会去查询外部的 DNS 服务器。这常用于本地开发测试或制止访问某些网站。
解释:域名解析(DNS Resolution)就是根据你提供的域名(比如 www.google.com),通过查询一系列的 DNS 服务器,最终找到并返回该域名所对应的 IP 地址(比如 172.217.160.142)的过程。
例子:就像你要找一个叫“张三”的朋友的住址(IP 地址),但你只知道他的名字(域名)。你必要去查地址簿(DNS 系统),这个查找过程就叫“解析”。当你输入 www.baidu.com 到欣赏器时,你的电脑就会启动域名解析过程,去问 DNS 服务器“www.baidu.com 的 IP 地址是什么?”。
目标是什么?
目标:域名解析的主要目标就是将人类容易记忆和使用的域名转换成计算机网络通讯所必需的 IP 地址。
原因:互联网上的设备相互通讯是依靠 IP 地址来定位的,但 IP 地址是一长串数字,不方便记忆。域名提供了一个友好的接口。DNS 解析就是连接这两者的桥梁,让你只必要记取域名就能访问到目标服务器。
后续效果:你的设备(比方欣赏器)获取到这个 IP 地址后,就能利用它来定位目标服务器,并向该服务器的特定端口(通常是 80 或 443 端口用于网页访问)发起连接请求,从而获取网页内容或其他服务。
例子:解析 www.baidu.com 可能得到 IP 地址 220.181.38.148。你的欣赏器拿到这个 IP 地址后,就会实验连接到 220.181.38.148 这台服务器的 80 端口(由于是 HTTP 访问)或 443 端口(假如是 HTTPS),然后请求百度首页的数据。
一个域名对应的是一个 IP 还是一个 IP 到详细的端口?
焦点对应关系:一个域名主要对应的是一个或多个 IP 地址。标准的 DNS 解析(如查找 A 记载或 AAAA 记载)的焦点使命就是找出 IP 地址。
端口的角色:端口号是在知道 IP 地址之后才使用的。它用来区分同一台服务器(同一个 IP 地址)上运行的不同服务或应用程序。你可以把 IP 地址想象成一栋大楼的地址,而端口号就是这栋大楼里详细的房间号或公司门牌号。
DNS 与端口:虽然标准的域名解析(A/AAAA记载)不直接返回端口号,但有特殊的 DNS 记载范例(如 SRV 记载)可以包罗服务、协媾和端口信息,但这通常用于特定服务发现(如 VoIP 或 XMPP),而不是平凡的网页欣赏。对于网页欣赏,端口是隐含的(HTTP 默认 80,HTTPS 默认 443)大概在 URL 中明白指定的。
例子:域名 example.com 解析得到 IP 地址 93.184.216.34。当你访问 http://example.com 时,欣赏器不仅使用解析到的 IP 93.184.216.34,还会默认连接到该 IP 的 80 端口。DNS 解析本身只提供了 IP 地址 93.184.216.34。
不直接通过 DNS 实现:DNS 的主要功能是将域名映射到 IP 地址。它不能直接将不同的域名映射到同一个 IP 地址的不同端口上。也就是说,你不能设置一条 DNS 记载说 app1.example.com 指向 1.2.3.4:8001 而 app2.example.com 指向 1.2.3.4:8002 (通过标准的 A/AAAA 记载)。