浅析 URL

200 阅读5分钟

1、URL是什么?

统一资源定位符(英语:Uniform Resource Locator,缩写:URL;或称统一资源定位器、定位地址、URL地址,俗称网页地址或简称网址)是因特网上标准的资源的地址(Address),如同在网络上的门牌。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址,现在它已经被万维网联盟编制为因特网标准RFC 1738

2、URL 包含哪几部分,每部分分别有什么作用

URL标准格式如下:
    [协议类型]://[域名或IP]:[端口号]/[文件路径]?[查询字符串]#[锚点]
  • 协议(protocol)

指定使用的传输协议,下表列出protocol属性的有效方案名称。最常用的是HTTP协议,它是目前www中应用最广的协议。

协议名称描述
http通过HTTP访问该资源。 格式 HTTP://
https通过安全的HTTPS访问该资源。格式 HTTPS://
file资源是本地计算机上的文件。格式 file:///,注意后边应是三个斜杠。
ftp通过FTP访问资源。格式 FTP://
Flashget通过支持Flashget(专用下载链接)协议P2P软件访问该资源。(代表软件:快车)格式 Flashget://
news通过NNTP访问该资源
gopher通过Gopher协议访问该资源
mailto资源为电子邮件地址,通过SMTP访问。格式 mailto:
MMS通过支持MMS(流媒体)协议的播放该资源。 (代表软件:Windows Media Player)格式 MMS://
ed2k通过支持ed2k(专用下载链接)协议的P2P软件访问该资源。(代表软件:电驴)格式 ed2k://
thunder通过支持thunder(专用下载链接)协议的P2P软件访问该资源。(代表软件:迅雷)格式 thunder://
  • 域名(IP)

域名就是IP的一个别称。分为:顶级域名、一级域名、二级域名、三级域名。通常我们把".com"结尾的称为顶级域名;xxx.com为二级域名(俗称一级域名);www.xxx.com 是三级域名(俗称二级)。

例:

https://www.google.com/search?source=hp&ved=0ahUKEwivoJKk8bPvAhWTE4gKHTbBAcEQ4dUDCAc&uact=5

其中 www.google.com 就是域名,也可以使用IP地址作为域名使用,有时,在主机名前也可以包含连接到服务器所需的用户名和密码(格式:username:password@hostname)

如何获取这个域名对应的IP呢?==>ping命令

当使用cmd命令行ping一个域名时,会将该域名对应的IP显示,见下图:

image.png

但你尝试了之后可能会发现你ping的IP不是图上显示的这个,那么这就将引出负载均衡和共享主机这两个概念:

负载均衡:就是当我们将相同的应用部署到多台机器上时,将将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。

共享主机就是指把多个拥有自己域名的网站同时部署在一个主机上(使用一个IP)。这时,当用户同时访问这个IP所绑定的两个域名时,返回的IP就是同一个IP。

  • 端口号
  • 以数字方式表示, 各种传输协议都有默认的端口号,若为默认值可省略
  • 有时出于安全或其他考虑,可以在服务器上对端口进行重定义,即采用非标准端口号,此时,URL中就不能省略端口号这一项
  • 一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等
  • 主机通过“IP地址 + 端口号”来区分不同的服务,端口号类似于营业厅的窗口
  • 端口号的范围从0到65535,0-1023这1024个端口供系统使用,HTTP默认端口号是80,FTP默认端口号是21
  • 当莫i一端口被占用时,只能选择使用另一个不正在被使用的端口
  • 路径

由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

  • 查询字符串

GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数值,通常以UTF8的URL编码,避开字符冲突的问题

  • 锚点

锚点常常使用在目录,点击目录中的某一章节,就会跳转到对应的地方,其实是在本页使用<a href="#sss"></a>跳转到对应的标签所在位置。

3、DNS

DNS是域名系统,域名系统是 Internet 电话簿。人们通过例如 nytimes.com 或 espn.com 等域名在线访问信息。Web浏览器通过Internet协议(IP)地址进行交互。DNS将域名转换为IP地址,以便浏览器能够加载Internet资源。

4、nslookup 命令

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

  • 直接查询(查询一个域名的A记录)

    nslookup domain [dns-server]
    

    image.png

  • 其他记录查询(指定参数,查询其他记录)

    nslookup -qt=type domain [dns-server]
    

    其中,type可以是以下这些类型:

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

    image.png

  • 查询更具体的信息(-d,查询域名的缓存)

    nslookup –d [其他参数] domain [dns-server]