顶级域名和一级域名的区别(一级域名和顶级域名一样吗)
- 常见问答
- 2022-08-05
- 11
一般我们日常上网的时候,都会在浏览器的地址栏输入一个网站& # 34;网站& # 34;点击进入,它就会跳转到你想去的网站,就像这样。
但实际上,它叫做& # 34;网站& # 34;不是特别准确,准确的说应该叫URL。
URL到底是什么?
网址到底是什么?不就是个网站吗?
URL是英文Uniform Resource Locator的缩写,即统一资源定位器,是一种用来指定信息在互联网上位置的表示方法。通过它,你可以在网上找到你想要的资源。
URL的组成
虽然我们平时使用浏览器时,输入Baidu.com或qq.com就可以正常上网,但实际上我们输入的只是整个网址的一小部分。
我先来看一个相对完整的URL的整体结构。
这里有几个部分。我们一个一个来看。他们具体做什么?
草案
图中http://的这一部分是协议部分,指定了URL发送网络请求的协议。
常见的协议如:http://、https://、ftp://、file://,例如:HTTP://是超文本传输协议,通常在上网时使用,https://是以安全为目的的HTTP协议。
地址
图中的localhost是地址部分,用来确定URL要访问的服务器的网络地址(即网址)。在URL中,地址可以用三种形式表示:域名、主机名和IP地址。
域名
我们通常输入的Www.baidu.com和www.qq.com是域名。域名也分为一级域名、二级域名、顶级域名。
顶级域名:在域名的尾巴部分,.com这种就是顶级域名,顶级域名一般都代表网站属于某种机构或组织。像.com(商业机构)、.org(非盈利组织)、.gov(政府机构)这类就是常见的顶级域名,除此之外,还有些代表国家的顶级域名,如:.cn(中国)、.us(美国)、.jp(日本)等等一级域名:像qq.com就是一级域名,看上去十分简洁,在顶级域名.com前只有一个单词短语二级域名:而mail.qq.com和v.qq.com这种前面加了mail.、v.等字符串的就叫二级域名但是域名只是一串单词,电脑和路由器都无法直接识别。还需要通过DNS服务器找到域名对应的IP地址,然后通过底层的TCP/IP协议路由到对应的机器上(这些内容不是本文的重点。现在跳过它们,先挖个洞)
主机名
主机名是计算机的名称。在局域网中,你可以通过主机名找到你想要访问的计算机。就像主机名域名一样,电脑和路由器都不识别,需要通过HOSTS文件的技术找到主机名和ip地址的关系,最后翻译成IP地址再发送网络请求。
图中的localhost也是主机名,但一种特殊的主机名是标准的主机名,它给出了环回地址,即代表本地机器本身的地址。
ip地址
在URL中,也可以直接用IP地址代替域名或主机名,比如192.168.0.1。关于IP地址的相关知识后面会讲到(继续挖坑)
通道数
图中冒号:后面的数字8080是端口号,一个服务器上可以开多个端口号,往往一个网络服务程序对应一个端口号。
例如,在机器A上,我打开了两个服务程序,Tomcat和SSH,并让它们分别与端口8080和22相关联。如果URL中的端口号是8080,我将访问Tomcat程序,22将连接SSH服务。
但是有些朋友可能会有疑问:诶,我平时在百度上看到的网址是http://www.baidu.com,但是我没有看到端口号。
其实是有的。端口号是80,但它是隐藏的,这个80端口是URL的默认端口号。
但并不是所有的URL都有默认端口号80。如果协议是http://,默认端口号是80,但是如果协议是https://,默认端口号是443。
虚拟目录
第一个斜杠/开头到最后一个斜杠/结尾的部分,也就是图中的/app/user/就是虚拟目录。
它类似于我们计算机中文件目录的格式。第一个/是根目录,每增加一个/就会多进入一层目录。
文件名
最后一个斜杠/从域名后面开始,到?到目前为止,没有?直到#,还是?和#,即以整个URL结尾的部分为文件名。
说白了其实就是图片中info.do的部分,一般包含文件名和扩展名(& # 39;。'后一部分)用于指代通过URL访问的特定文件或资源。可以是图片、html文件、css文件、js文件、字体文件等。也可以是在服务器后台执行的程序,而不是某种文件。
您甚至可以省略不写虚拟目录和文件名,因为它们不是必需的。例如,像http://www.baidu.com这样的网址没有文件名,但默认情况下,服务器会把你定位到一个特定的文件或程序。
查询参数
从哪里?到#末,也就是图中?Uid=101&ty=2是查询参数。
查询参数,也称为URL参数和查询字符串,英文称为Query。它们用于以字符串的形式向服务器传递参数和少量数据。
参数形式一般以多键值对的形式表示,比如a=1,b=2,这是两个键值对,带有key & # 34一& # 34;还有& # 34;b & # 34,该值是对应的& # 34;1"还有& # 34;2",多个键值对应& connect: a=1&b=2
URL编码
但是,一些由参数传递的值通常有特殊字符。这些字符与URL标准的格式冲突,比如传递a&b这样的字符串,与查询参数键值对的连接符冲突。如果不加以区分,就会模棱两可。
而最简单的方法就是对参数值进行编码,这叫做URL编码。通过编码,a&b变成了%26b,不再包含会冲突的特殊字符。
而且有些参数即使有特殊字符也不会编码,除非自己编码。比如URL中的参数值是另一串URL,可以写成http://localhost/do?url=http://www.baidu.com的特例不会有歧义,因为计算机系统识别出参数是另一串url,它会以URL的形式进行解析。但是当子URL包含子参数和多个子键对时,必然会无法分辨参数是儿子的还是父亲的,所以这个时候还是强制编码比较好。
列表参数
URL的参数是键值对,即一个键对应一个值。如果一个键要传递多个值,也就是一个列表怎么办?很简单。
URL的参数名称可以重复,例如a=1&a=2&a=3。这里有三个参数名为A的查询参数,这是完全可能的。你可以利用这个特性,依次取1,2,3作为参数A的列表值。
为了更清楚,通常在列表参数名后面加一对方括号[],如:a[]=1&a[]=2&a[]=3。
但是对于URL参数的编写标准和格式并没有特别严格的规定,一般都支持以上形式。
锚
图中#后面的字符串,#abc是锚点部分。
Anchor,英文叫Reference,通常用于传递参数等信息,但与查询参数的本质区别在于,这部分内容不会传递给服务器。
一般来说,锚用于页面。例如,在浏览网页时,突然按下一个按钮可以帮助您定位到页面的顶部或页面的某个位置。这是锚。
随着前端分离技术的兴起,尤其是vue、reactjs等前端框架的兴起,锚点作为前端javascript程序处理的参数载体越来越重要。
标签
URL看似很简单的东西,背后往往隐藏着很多技术细节和知识点。就连这篇短文也无法穷尽。
其实URL的内容有很多,比如<用户名>:@ & ltPassword >:这种在URL中传输用户认证信息的方式,因为篇幅原因没有提及。
所以我将在几篇文章中解释HTTP协议的一些重要部分。如果这一系列文章对你有帮助,别忘了关注哦~
本文由admin于2022-08-05发表在江苏SEO首页,如有疑问,请联系我们。
本文链接:https://www.jppbj.cn/post/22087.html