浅析URL

142 阅读6分钟

1.什么是URL

URL:Uniform Resource Locator————中文翻译:统一资源定位符————举例:cn.bing.com

用于表示某一网络资源存在于所在计算机网络上的位置,是因特网上标准的资源的地址(Address)

URL的组成

由协议+域名+端口号+路径(服务器上的资源路径)+查询字符串(参数)+锚点所组成

如图所示,一般的URL会省略端口号,但端口号是一直存在的,例如https就默认为443端口。 image.png

  1. 协议 通信双方必须共同遵从的一组约定,如怎么样建立连接、怎么样互相识别等。前端一般使用http:// 和https:// 其他协议如ftp:// 等并不常用。

  2. 域名 如www.baidu.com 是百度的域名,表示对应所请求的服务器,可以视作是IP地址的别称,在部分URL中域名也可以使用IP代替,但域名相对更容易记忆。

  3. 端口

一般紧跟在路径后,如:443 是https协议的端口,:80 是http协议的端口,多数网址会省略端口。不同的服务使用不同的端口,具体细节详见Wiki

0-1023端口由系统占用,不推荐用户使用,需要管理员权限才能使用,其他端口供用户使用,例如http-server固定使用8080端口,端口不能重复占用。

  1. 路径

developer.mozilla.org/zh-CN/docs/…

developer.mozilla.org/zh-CN/docs/…

链接中/HTML /CSS 等是URL中的路径,对应服务器中的资源路径,在同一个服务器上使用不同的路径就可以得到不同的页面。

  1. 参数

图示中的?wd=hello是查询参数,也可以理解成是提供给网络服务器的额外参数,多个参数会用&分隔键/值对列表。不同服务器有其对应的参数规则。

  1. 锚点 例如图示中的 #5
  • #后面的内容被叫做片段标识符
  • 锚点不会传给服务器
  • 无法在在开发者模式下的network面板看到锚点
  • 可以使浏览器快速滚动到长页面下的锚点位置,功能类似书签。

2.DNS

Domain Name System 域名系统/域名解析:实现域名与IP对应的系统。

DNS的作用:在互联网中通过IP地址来进行通信。但是IP 地址的表示形式是数字,很难进行记忆(比如116.213.120.232),所以为每个IP取一个人类更易记忆的域名形式,而通过DNS来把解析域名成为 IP。将域名(网址)解析为IP地址,这个过程叫做DNS域名解析。、

DNS请求如何工作?

  1. 在浏览器地址栏输入mozilla.org
  2. 浏览器询问计算机是否已经识别此域名所确定的IP地址(使用本地DNS缓存)。 如果是的话,这个域名被转换为IP地址,然后浏览器与网络服务器交换内容。结束。
  3. 如果电脑不知道 mozilla.org 域名背后的IP, 它会询问一个DNS服务器,这个服务器的工作就是告诉你的电脑已经注册的域名所匹配的IP。
  4. 现在电脑知道了要请求的IP地址,浏览器能够与网络服务器交换内容。

image.png

nslookup

通过域名查询资源。【用来监测网络中DNS服务器是否可以实现域名解析的工具】,用于互动式地查询域名记录。【可以获取域名对应的ip】。nslookup有两种模式:交互模式(nslookup 不加参数)与非交互模式(nslookup + 参数)。nslookup与ping的区别在于nslookup返回的结果更丰富,主要针对dns服务器的排错,收集dns服务器的信息。 image.png

如图所示,是先使用nslookup命令进入交互模式,然后输入需要查询IP地址的域名,返回对应的IP结果

通过观察结果可以得到以下结论:

  • DNS查询的过程中会先查询本地是否有缓存,没有再去请求DNS服务器进行查询。
  • 一个域名可以对应多个IP,机上文所述的负载均衡。
  • 域名通常会有别名
  • 带www的和不带www的是不同的域名

3. IP

IP Internet Protocol 因特网协议: IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 IP的作用

  • 如何定位一台设备(为每一台计算机分配IP地址)
  • 如何封装数据报文,以跟其他设备交流(确定哪些地址在同一个子网络)

IP分两种:内网IP(常见如192.168.XXX.XXX),外网IP(可以使用ipconfig命令进行查询)。 内网和外网之间的内容传输与相互访问需要通过路由器进行实现,内网和外网可以视作两个相互隔绝的空间, 唯一的联通点是路由器(也叫网关)

特殊IP:

  • 127.0.0.1 表示本机
  • localhost 通过hosts文件指向本机
  • 0.0.0.0 不表示任何设备

ping命令

用于测试网络连接量的程序。Ping发送一个ICMP给目的地并报告是否收到所希望的ICMP echo,用来检查网络是否通畅或者网络连接速度的命令。

使用方法:

  1. 使用ipconfig /all观察本地网络设置是否正确。
  2. ping 127.0.0.1,检查本地的TCP/IP协议有没有设置好;
  3. ping本机IP地址,检查本机的IP地址是否设置有误;
  4. ping本网网关或本网IP地址,检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常
  5. Ping远程IP地址,检查本网或本机与外部的连接是否正常,如图所示。

image.png

4.域名

  • 域名就是对IP的别称
  • 一个域名可以对应不同的IP 这个叫做均衡负载,防止机器工作量过大
  • 一个IP可以对应不同的域名,称作主机共享
  • 域名通过DNS和IP是对应起来

分几类域名

  1. 顶级域名 顶级域名又分为两类:
  • 国家顶级域名(例如.cn、.us等)
  • 国际顶级域名(例如表示工商企业的.com,表示网络提供商的.net,表示非盈利组织的.org等)
  1. 二级域名 二级域名是指顶级域名之下的域名,一般指域名注册者的网上名称,例如 xiedaimala.com

  2. 顶级域名 例如 www.xiedaimala.com 是三级域名,三级域名与二级域名间是父子关系