关于url中各项的分析和延伸

1、URL的基本组成

先以https://www.baidu.com:8080/aaa/2.html?id=10#name这个完整的url网址来分析一下。

// https://www.baidu.com:8080/aaa/2.html?id=10#name
let url = new URL('https://www.baidu.com:8080/aaa/2.html?id=10#name');
url.protocol // "https:"  协议名
url.host // "www.baidu.com:8080" 
url.hostname // "www.baidu.com"
url.href   // "https://www.baidu.com:8080/aaa/2.html?id=10#name"
url.origin // "https://www.baidu.com:8080"
url.port  // 8080
url.pathname  // /aaa/2.html
url.search  // "?id=10"
url.searchParams  // 相当于{id: 10}
let id = url.searchParams.get('id') // 用get获取相对应的参数
id // 10
url.hash  // #name

1、协议名(protocol):https:

2、host :www.baidu.com:8080
对于host属性的解释如下:包含了主机信息,也就是 主机名(hostname),还有,如果 URL 接口不为空,也会包含冒号 ‘:’ 和 URL 的 端口(port)。

3、主机名(hostname):www.baidu.com
主机名= 服务器名 + 域名

4、href : https://www.baidu.com:8080/aaa/2.html?id=10#name

5、origin:https://www.baidu.com:8080

6、port(端口号):8080

6、pathname: /aaa/2.html

7、search: ?id=10

8、searchParams:{id: 10}

9、hash:#name

2、URL的疑惑解答

从上面分析了url的基本组成。同时我产生了这样几个疑问。

2.1 疑惑点一:主机名和域名的区别
2.2 疑惑点二:端口号的作用
2.3 疑惑点三:域名的划分
2.4 疑惑点四:hash的运用不会改变网路请求,但是会在浏览器历史中新增历史记录,这种的一个流程

针对上面四点,来一一解答一下。

2.1 疑惑点一:主机名和域名的区别

主机名代表一台主机,等于服务器名+域名。来看一个例子:

https://editor.csdn.net/md?articleId=106706854

上面url中
https:协议名
editor:这个就是服务器名,代表着csdn的一个编辑(写博客)服务器。
csdn.net:这个是域名,是用来定位网站独一无二的名字。

https://blog.csdn.net/xiaolinlife/article/details/67637766

上面url中
https:协议名
blog:这个就是服务器名,代表着csdn的一个博客服务器。
csdn.net:这个是域名,是用来定位网站独一无二的名字。

关于域名,我引用这篇博客(地址:博客地址链接)中的一段话来说明一下:

网络是基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的标识固定的IP地址,以区别在网络上成千上万个用户和计算机。网络在区分所有与之相连的网络和主机时,均采用了一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派了一个独一无二的地址。为了保证网络上每台计算机的IP地址的唯一性,用户必须向特定机构申请注册,该机构根据用户单位的网络规模和近期发展计划,分配IP地址。网络中的地址方案分为两套:IP地址系统和域名地址系统。这两套地址系统其实是一一对应的关系。IP地址用二进制数来表示,每个IP地址长32比特,由4个小于256的数字组成,数字之间用点间隔,例如166.111.1.11表示一个IP地址。由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。
  域名就是上网单位的名称,是一个通过计算机登上网络的单位在该网中的地址。一个公司如果希望在网络上建立自己的主页,就必须取得一个域名,域名也是由若干部分组成,包括数字和字母。通过该地址,人们可以在网络上找到所需的详细资料 。域名是上网单位和个人在网络上的重要标识,起着识别作用 ,便于他人识别和检索某一企业 、组织或个人的信息资源,从而更好地实现网络上的资源共享。除了识别功能外,在虚拟环境下,域名还可以起到引导、宣传、代表等作用。

简单的说:
主机名就是一台主机的名字。
域名就是IP地址的映射。

2.2 疑惑点二: 端口号的作用

端口号的作用是用来区分不同的服务。

我们知道一台主机(对应一个IP地址)可以提供很多服务,比如web服务,ftp服务等等。如果只有一个IP,无法区分不同的网络服务,所以我们采用”IP+端口号”来区分不同的服务。

2.3 疑惑点三:域名的划分

顶级域名(一级域名)、二级域名、三级域名等
顶级域名,我们知道域名由两个或两个以上的词构成,中间由点号分隔开,最右边的那个词就叫做顶级域名。我们接触的顶级域名又分为两类:一是国家和地区顶级域名。例如中国是cn,美国是us等;二是国际顶级域名,例如表示工商企业的.com,表示非盈利组织的.org,表示网络商的.net等。

例如:blog.baidu.com
一级域名又称顶级域名,即: com
二级域名,即: baidu
三级域名,也就是二级域名的子目录,即: blog

一个完整的域名一般由二个或二个以上部分组成,各部分之间用英文的句号”.”来分隔,最后一个”.”的右边部分称为顶级域名(TLD,也称为一级域名),一级域名”.”的左边部分称为二级域名(SLD),二级域名的左边部分称为三级域名,以此类推,每一级的域名控制它下一级域名的分配。三级域名是形如”().().baidu.com”的域名,可以当做是二级域名的子域名,特征为域名包含两个”.”,一般来说,三级域名都是免费的。

2.4 疑惑点四:hash的运用不会改变网路请求,但是会在浏览器历史中新增历史记录,这种的一个流程

hash值的运用之前有总结过一篇博客,大家可以参考一下
地址:关于 http和[removed].href的分析 、URL中“#” “?” &“”号的作用和域名的区分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值