Featured image of post 浅析 URL

浅析 URL

URL是什么

Uniform Resource LocatorURL,统一资源定位符),俗称网址,是因特网上标准的资源的地址。由 蒂姆·伯纳斯-李 发明用来作为万维网的地址。

它使用美国信息交换标准代码的一部分来表示因特网的地址。统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议。

URL的组成

统一资源定位符的标准格式:

[ 协议类型 ] :// [ 服务器地址 ] : [ 端口号 ] / [ 资源层级UNIX文件路径 ] [ 文件名 ] ? [ 查询 ] # [ 片段ID ]

一个完整的URL

https://www.google.com:443/search?q=hello#botstuff

其中:

  • https 协议,告诉浏览器这次请求使用什么协议交流,常见的有 http、https、file、ftp等。
  • www.google.com 域名,浏览器会从 DNS 结果找到域名对应服务器 IP 地址,向该服务器发送本次请求。
  • 443 端口号,告诉服务器本次请求的是哪个端口的服务。
  • /search 路径,告诉服务器本次请求的是哪里的内容。
  • q=hello 查询参数,每个参数以“&”隔开,告诉服务器本次请求想要的结果是什么
  • botstuff 片段 ID,浏览器本地处理,将页面直接定位到 ID 为 botstuff 的元素位置。片段 ID 不会跟着请求一起发送给服务器。

总结:

  • 协议是告诉浏览器怎么发请求
  • 域名/IP地址是告诉浏览器找谁请求
  • 端口号是告诉请求的对象我要请求哪个服务
  • 路径是告诉请求的对象我要请求该端口下什么位置的内容
  • 查询参数是告诉请求的对象我对查询结果的限制条件是什么

那么DNS是什么

Domain Name SystemDNS,域名系统),是互联网的一项服务。它是一个将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

通俗来讲,DNS 就像以前的 114 查询台,DNS 存储了很多的域名和 IP 的映射表,我们在浏览器输入的域名,浏览器并不知道他需要访问哪一台设备,所以需要一个 DNS 服务器来告诉浏览器这个域名对应的设备 IP,浏览器获取到设备 IP 后通过 IP 去访问对应的主机。

如何查询域名对应的IP

1
$ nslookup 域名 DNS服务器地址

使用 nslookup 命令,可以看到域名对应的 IP 地址,不加 DNS 服务器地址则是向默认 DNS 服务器查询,加上的话是向指定的 DNS 服务器查询。

什么是IP

IP Address,是网际协议(Internet Protocol)中用于标识发送或接收数据报的设备的一串数字。

当设备连接网络,设备将被分配一个 IP 地址,用作标识。通过 IP 地址,设备间可以互相通讯,如果没有 IP 地址,我们将无法知道哪个设备是发送方,无法知道哪个是接收方。IP 地址有两个主要功能:标识设备或网络寻址(location addressing)

IP 地址分为 IPv4 和IPv6 两类:

  • IPv4 由十进制数字组成,如 192.168.0.1
  • IPv6 由十六进制数组成,如 2001:db8:0:1234:0:567:8:1

IP 地址有两个主要的功能:

  • 标识主机: 更具体地说,标识其网络接口,并且提供主机在网络中的位置。
  • 网络寻址: 该功能是将 数据报 从一个网络模块 送到 目的地。在发送的整个过程,IP地址(address)充当着目的地的位置,域名(name)意味着我们要找什么,路由(route)代表着如何到达目的地的这个过程。每个 IP 数据包的标头包含了发送主机的 IP 地址和目的主机的 IP 地址。

Ping是什么

1
$ ping 域名

Ping 是一种计算机网络工具,可以用来测试数据包能否透过 IP 协议到达特定主机。Ping 的运作原理是向目标主机传出一个 ICMP 的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢失数据包率(丢包率)和数据包往返时间(网络时延,Round-trip delay time)。

域名

网域名称(Domain Name),简称域名、网域,是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。

域名可以说是一个 IP 地址的代称或别名,目的是为了便于记忆。例如 wikipedia.org 是一个域名,人们可以直接访问 wikipedia.org 来代替 IP 地址,然后域名系统 DNS 就会将它转化成便于机器识别的IP地址。这样,人们只需要记忆 wikipedia.org 这一串带有特殊含义的字符,而不需要记忆没有含义的数字。

域名的核心是域名系统(Domain Name System,DNS),域名系统中的任何名称都是域名。在域名系统的层次结构中,各种域名都隶属于域名系统根域的下级。

  • 域名的第一级是顶级域,它包括通用顶级域,例如 .com .net.org 等等
  • 顶级域名下一层是二级域名,例如 baidu.comgithub.io 等等
  • 二级域名下面是三级域名,例如 tieba.baidu.comusername.github.io 等等
  • 顶级域名的管理服务由对应的域名注册管理机构(域名注册局)负责,注册服务通常由域名注册商负责。

资料来源:饥人谷、WikiPedia