dns地址和ip地址的区别_ip地址和域名一样吗

2022-09-27 10:01:01 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

IP:每个连接到Internet上的主机都会分配一个IP地址,此ip是该计算机在互联网上的逻辑地址的唯一标识,计算机之间的访问就是通过IP地址来进行的。写法:十进制的形式,用“.”分开,叫做“点分十进制表示法”,如:127.0.0.1。IP地址采用二进制的形式表示的话很长,比较麻烦,为了便于使用,IP地址经常被写成十进制的形式。

域名:ip是数字标识,使用时不好记忆和书写,因此在将IP地址符号化,每一个符号化的地址都与特定的IP地址对应。用字符型地址代替数字型的IP地址,这个字符型地址就被称为域名。

以百度为例:

域名:www.baidu.com。只有1个。

ip:119.75.218.70或119.75.217.109或……,即ip可以有多个,共同指向百度的域名。

关系:

(1)1台计算机只有1个ip(一对一),即1个ip就是1台计算机

(2)1个域名对1个或多个ip(计算机):百度域名www.baidu.com的ip有119.75.218.70或119.75.217.109或……假如百度域名总共有10个ip,则就对应10台计算机,即多个计算机(ip)可以共同指向1个域名,也即119.75.218.70指向www.baidu.com,而119.75.217.109也指向www.baidu.com……

但是,域名就相当于人名,ip就相当于这个人。一个人可以有多个名字,但1个名字只能代表1个人(排除同名同姓),否则就乱套了。所以,1个域名,在实际应用中,只对1个ip。如:百度部署了100台服务器,即百度域名对应100个ip。如果使用ip来访问百度,难道就可以让某人用100个不同的ip都能访问百度主页吗? 这不乱了吗。因此,需要用到反向代理。比如淘宝就用的Tengine,百度用的BWS,还有的用的nginx等等

这样可以让所有的ip映射到一个www.baidu.com。这样我们访问www.baidu.com的时候,就会由百度的负载均衡服务器来分配一台服务器给用户访问,也就是说,虽然百度域名对应多个ip,这些ip都可以访问百度,但百度只允许用户通过1个ip访问,即只能通过一台服务器访问百度,至于我们访问的是哪一台就不重要了

(3)1台计算机上面可以有好多个服务,也就是一个ip地址对应了好多个域名。即一台计算机(ip)可以访问百度域名,还可以是360域名等,但这台ip访问不同域名的时候,只能通过百度给定的1个ip访问百度,360给定的1个ip访问360

(4)通过ip访问百度的流程:输入ip→访问IP地址→完成访问的内容→返回信息(输入的ip就是dns给你返回一个ip地址)

(5)通过域名访问百度的流程:输入域名→域名解析服务器(dns)解析成ip地址→访问IP地址→完成访问的内容—返回信息。即比(4)多了先将域名转为ip这一步

DNS:域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。域名的最终指向是IP。

URL:统一资源定位符(英语UniformResourceLocator的缩写)俗称为网址(链接)。网址格式为:协议://域名或IP[:端口]/路径/文件名[参数=值]。结构中,协议://域名或IP是必需的,[]部分是可选的。如果端口与协议默认值不同,则需包含端口,省略则默认80端口。路径有时可省略。


以此博客为例:https://i.cnblogs.com/EditPosts.aspx?postid=11395178

1、协议:该URL的协议部分为“https”,表示网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在”HTTP”后面的“//”为分隔符。常用协议:

http——超文本传输协议资源

https——用安全套接字层传送的超文本传输协议

ftp——文件传输协议

file——本地计算机上的文件

2、域名:该URL的域名部分为 “ i.cnblogs.com ” 。一个URL中,也可以使用IP地址作为域名使用。如百度域名www.baidu.com也可用ip地址119.75.218.70

域名的最右边就是顶级域名,常见的比如:

①.com 表示商业机构:百度 www.daidu.com

②.org 表示非盈利性组织:中国青年志愿者网 www.zgzyz.org.cn

③.gov 表示政府机构:国务院 www.gov.cn

④.edu 表示教育及科研机构:北理工 www.bit.edu.cn

用来表示国家顶级域名的比如:.cn 表示中国。.us 表示美国。.jp 表示日本,像 topbook.cc 就表示科科斯群岛的国家顶级域名。

另:在地址栏输入一个网址的时候,协议部分是不用输入的,浏览器会自动补上默认的 HTTP 协议。比如 直接输入域名www.baidu.com,这是一个网站独一无二的网络名字。其中的www指万维网。

互联网、因特网、万维网三者的关系是:互联网包含因特网,因特网包含万维网,凡是能彼此通信的设备组成的网络就叫互联网。所以,即使仅有两台机器,不论用何种技术使其彼此通信,也叫互联网。

3、端口:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。该URL省略了端口,即 i.cnblogs.com:80

4、虚拟目录:第一个“/”为根目录,从域名后的第一个“/”开始到最后一个“/”之间。虚拟目录也不是一个URL必须的部分。该URL没有虚拟目录。但https://www.python123.io/student/courses/934/groups的虚拟目录为student/courses/934

5、文件名:从域最后一个“/”开始到“?”(没?就到#。两者都要就到?)之间。如果没有“?”和“#”,则一直到最后,都是文件名部分。该URL的文件名为EditPosts.aspx。文件名也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名index.htm

6、参数:从“?”开始到“#”之间,又称搜索部分、查询部分。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。该URL没有参数。但http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name的参数部分为“boardID=5&ID=24618&page=1”。其中boardID=5、ID=24618、page=1都是参数

7、锚:从“#”开始到最后,都是锚部分。锚部分也不是一个URL必须的部分。该URL没有锚。而http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name的锚部分是“name”。,其右面的字符就是该位置的标识符(一般情况下,锚链接会用到)

拓展:

查询域名对应的IP:以百度为例

在cmd中,输入:ping www.baidu.com,回车即可

不能输入:ping https://www.baidu.com/,即输入的是域名,不是URL

Statements:如有不足之处,欢迎指正。分享随笔,一起进步

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188218.html原文链接:https://javaforall.cn

0 人点赞