浅析 URL

1,203 阅读6分钟

浅析URl

简述

从定义的上理解:

统一资源定位符(Uniform Resource Locator,缩写为URL),又叫做网页地址,是互联网上标准的资源的地址(Address)。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议。

github.com/xihaoshangd…

这是一个标准的URL,一般来说:URL=协议+域名|IP+端口号+路径+参数+锚点,端口号一般采用默认端口,80端口提供HTTP服务,443端口提供HTTPS服务,21端口提供FTP服务。

DNS域名解析

向浏览器输入一个标准的URl,协议说明我们以什么方式请求,域名|IP说明我们请求的服务器在互联网上身份,端口号说明我们请求的服务,路径说明我们请求的资源,参数说明我们要告知服务器的内容,锚点不会被提交

在这个过程中,很重要的一步就是域名是给人看的,但不是给计算机看的,所以将人类可以解读的域名解析为计算机可以识别的IP地址,就是所谓的DNS解析.

DNS解析的过程:

  1. 客户端访问本地的hosts文件,检查在该文件中是否有相应的域名、IP对应关系,如果有,则向其IP地址发送请求,如果没有,再去找本地的DNS服务器。
  2. 客户端向本地DNS服务器发送一个含有域名的DNS查询报文。
  3. 本地DNS服务器把查询报文转发到根DNS服务器,根DNS服务器注意到其com|org|net后缀,于是向本地DNS服务器返回相对应后缀的服务器的IP地址。
  4. 本地DNS服务器再次向对应后缀的DNS服务器发送查询请求,DNS服务器注意到其后缀并用负责该域名的权威DNS服务器的IP地址作为回应。
  5. 最后,本地DNS服务器将含有IP地址的响应报文发送给客户端。

nslookup

nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题。

  1. 直接查询

nslookup domain [dns-server] //如果没有指定dns服务器,就采用系统默认的dns服务器。

  1. 其他查询

nslookup -qt = type domain [dns-server]

type: 含义
A -->地址记录
AAAA -->地址记录
AFSDB Andrew -->文件系统数据库服务器记录
ATMA -->ATM地址记录
CNAME -->别名记录
HINHO -->硬件配置记录,包括CPU、操作系统信息
ISDN -->域名对应的ISDN号码
MB -->存放指定邮箱的服务器
MG -->邮件组记录
MINFO -->邮件组和邮箱的信息记录
MR -->改名的邮箱记录
MX -->邮件服务器记录
NS --> 名字服务器记录
PTR -->反向记录
RP -->负责人记录
RT -->路由穿透记录
SRV -->TCP服务器信息记录
TXT -->域名对应的文本信息
X25 -->域名对应的X.25地址记录
  1. 查询更具体的信息

nslookup -d [其他参数] domain [dns-server]
//只要在查询的时候,加上-d参数,即可查询域名的缓存

IP地址

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

换言之,IP地址就是每一个互联网上的身份证。但是这里也分外网和内网。外网IP是独立IP也就是公网IP。但是内网IP可能是多个IP共享一个公网IP,通过NAT将多个内网Ip映射到一个公网IP。

ping

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list

参数 含义
-t Ping 指定的计算机直到中断。
-a 将地址解析为计算机名。
-n count 发送 count 指定的 ECHO 数据包数。默认值为 4。
-l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
-f 在数据包中发送”不要分段”标志。数据包就不会被路由上的网关分段。
-i ttl 将”生存时间”字段设置为 ttl 指定的值。
-v tos 将”服务类型”字段设置为 tos 指定的值。
-r count 在”记录路由”字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count 指定 count 指定的跃点数的时间戳。
-j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout 指定超时间隔,单位为毫秒。
destination-list 指定要 ping 的远程计算机。

域名

先来看看域名的定义:

域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。 网域名称系统(DNS,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

在了解一下域名的管理机构:

全世界域名的最高管理机构,是一个叫做 ICANN (Internet Corporation for Assigned Names and Numbers)的组织。它的总部在美国加州。ICANN 负责管理全世界域名系统的运作。它的一项主要工作,就是规定顶级域名(top level domain,简写为 TLD)。

  1. 根域名

由于 ICANN 管理着所有的顶级域名,所以它是最高一级的域名节点,被称为根域名(root domain)。在有些场合,www.example.com被写成www.example.com.,即最后还会多出一个点。这个点就是根域名。理论上,所有域名查询都必须先查询根域名,因为只有根域名才能告诉你,某个顶级域名由哪台服务器管理。事实上也确实如此,ICANN 维护着一张列表,里面记载着顶级域名和对应的托管商。

  1. 顶级域名

顶级域名(TLD),就是最高层级的域名。简单说,就是网址的最后一个部分。比如,网址www.example.com的顶级域名就是.com

  1. 下属域名