浅析URL

194 阅读4分钟

什么是URL

  • URL即:统一资源定位符,全称为Uniform Resource Locator。最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址,现在已经被万维网联盟编制为因特网标准RFC 1738
  • URL的组成:协议+域名/IP+端口号+路径+查询字符串+锚点 URL例子.png
  • 在同一个服务器上使用不同的路径可以访问到不同的页面,路径没有必要加后缀'/'。(在开发着工具Network面板查看URL地址可以看到区别) z-index.png CSS路径.png
  • 通过查询参数可以在同一个页面查看到不同的内容
  • 通过锚点可以查看同一个页面同一个内容的不同位置
    • 锚点无法在开发者工具Network中查看到,因为锚点不会传给服务器
    • 锚点实际上不支持中文,复制后会显示一串字符。锚点只是在本地的不同内容,只和浏览器有关。 锚点.png

IP

  • IP即:网络协议,全称Internet Protocal
  • IP主要约定了两件事:1.如何定位一台设备;2.如何封装数据报文以跟其他设备交流。
  • 外网IP&内网IP
  • 几个特殊的IP
    • 127.0.0.1表示自己的
    • localhost通过host指定为自己
    • 0.0.0.0不表示任何设备

端口

  • 一台机器可以提供多种服务,每个服务对应一个号码,即端口号port。
  • 使用端口的规则
    • 0-1023号端口是留给系统使用的
    • 1024号端口只有拥有了管理员权限后才能使用
    • 其他端口可以给普通用户使用
    • 一个端口被占用后就只能换一个端口才能使用
    • 服务器默认用80端口提供HTTP服务,用443端口提供HTTPS服务,用21提供端口FTP服务
  • IP和端口是上网缺一不可的条件,IP是用来定位一台设备的,端口是用来定位一台设备的服务的,两者用来定位一台设备提供的服务。

域名

  • 域名就是对IP的别称
  • 一个域名可以对应不同的IP。通过把同一个域名绑定至不同地区的IP上,即负载均衡,防止一台机器扛不住(网络优化)。一个IP可以对应不同的域名,即共享主机,共用一台主机。
  • 域名的类别:com是顶级域名;xxx.com是二级域名(俗称一级域名);www.xxx.com 是三级域名(俗称二级域名)。(有无www的域名,可能是同一个域名也可以是不同域名。)
  • www是多余的,域名前没必要加www。

DNS

  • DNS即域名系统,全称Domain Name System,通过DNS可以把域名和IP联系起来。
  • 域名系统中的任何名称都是域名。在域名系统的层次结构中,各种域名都隶属于域名系统根域的下级。
  • 用DNS把域名和IP对应起来,过程如下:
    • 当你输入一个网页地址时,你的浏览器会向电信/联通等提供的DNS服务器提问XXX地址对应什么IP
    • 电信/联通回答一个IP
    • 然后你的浏览器才会向对应IP的80/443端口发送请求
    • 请求内容是查看你输入的地址的首页

ping命令&nslookup命令

  • ping命令是基于 ICMP 协议来工作的,用来探测本机与网络中另一主机之间是否可达的命令。其主要作用如下:
    • 用来检测网络的连通情况,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。
    • 分析网络速度
    • 根据域名得到服务器的IP地址
    • 根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量
  • nslookup(name server lookup)命令是用于查询域名 DNS 信息的工具,有两种工作模式,即“交互模式”和“非交互模式”。
  • ping命令会直接获取域名结果,nslookup命令会显式地从dns服务器获取结果。
    • 在命令行中输入ping xxx域名,即可得到xxx域名对应的IP地址
    • 在命令行中输入nslookup xxx域名,就可以看到xxx域名对应的所有地址

curl命令

  • 用curl可以发送HTTP请求
  • url会被curl工具重写,先请求DNS获得IP,然后进行TCP连接,TCP连接成功后,开始发送HTTP请求,响应结束后,关闭TCP连接。