1990 年英国计算机科学家蒂姆·伯纳斯-李(Tim Berners-Lee)发明了万维网,并解决了其中三项关键技术: URL + HTML + HTTP。本篇讲述其中的一项,全球网络资源唯一认证的系统:URL 的基本知识。

IP 与端口

1. IP 和端口的作用

  • IP(Internet Protocal)是定位互联网中一台设备的协议,它规定了如何封装数据报文,以跟互联网中的其他设备交流。只要你在互联网中,你就至少有一个独特的 IP。
  • 端口(Port)是用来定位互联网中一台设备中的不同服务的。

2. 内网与外网

形象点描述,外网就好比我家的地址,内网就类似我在我家的位置。外网是实现互联网中设备间互相通信的基础,内网和外网之间使用路由器进行中转。

2.1 外网 IP

当我们租用电信宽带,安装猫和路由器后,便拥有了自己的外网 IP(由运营商分配)。需要注意的是,你的所有设备都共享一个外网 IP;如果重启路由器,外网 IP 将会被重新分配。

可以通过 ipconfig 或访问 IP 138.com 来查看自己的外网 IP。

2.2 内网 IP

内网 IP 一般以 192.168.x.x 形式出现,内网中的设备可以互相访问,但想访问外网需要通过路由器中转;同样地,外网设备要把数据内容送到内网也必须通过路由器。

路由器可以说是内网和外网这两个隔绝空间之间的唯一连通点,故也被称为网关。

2.3 几个特殊的 IP

localhost 表示本地

127.0.0.1 表示自己

0.0.0.0 不表示任何设备

3. 端口的约定

当数据内容通过外网及内网 IP 唯一定位到用户设备后,需要通过端口传输给指定的服务。常用的服务有:端口列表

  • HTTP 服务:80 端口
  • HTTPS 服务:443 端口
  • FTP 服务:21 端口

关于端口有几个约定:

  1. 一共有 65535 个端口可供使用,0~1023 号端口是留给系统使用的。
  2. 只有拥有管理员权限后,才能使用这 1024 个端口;其他端口是给普通用户使用的,比如 http-server 默认使用 8080 端口。

URL

1. URL 的组成

HTTP 的统一资源定位符将从因特网获取信息的五个基本元素包括在一个简单的地址中:

  1. 传送协议:后接层级 URL 标记符号 // ,可省略 —> // 开头的无协议地址
  2. 服务器域名:也可以是 IP 地址,前者会被 DNS 解析
  3. 端口号:以数字形式表示,若为默认值可省略
  4. 路径:以 / 字符区别路径中 每一个目录名称,通过路径可以访问服务器的不同页面
  5. 查询字符串:以 ? 为起点,用 = 划分参数名与数据,每个参数以 & 隔开,查询参数实现了对同个页面不同内容的访问
  6. 锚点:以 # 为起点,用于跳转到该页面的某个位置,锚点只和本地的游览器有关,其参数不会在请求头中传给服务器

2. DNS 域名系统

2.1 DNS Domain Name System 将域名和 IP 连接起来

  1. 通常我们在游览器中输入的是服务器的域名而不是 IP 地址,此时 chrome 游览器会向电信 / 联通提供的 DNS 服务器询问域名对应的 IP 地址。
  2. 然后 chrome 游览器会向对应的 IP 的 80 / 443 端口发送请求。
  3. 服务器返回响应体,被游览器解析成丰富多彩的网页内容。
  4. 可以通过 nslookup baidu.com 向 DNS 询问域名对应的 IP 地址。
  5. 一个域名可以对应不同的 IP,实现均衡负载;一个 IP 也可以对应不同的域名,叫共享主机,即和别的公司共用服务器。
  6. 可以通过 curl -v http://www.baidu.com 发送 HTTP 请求。

2.2 域名的级别

  • . 为根域名,因为每个域名都有根域名,因此我们通常省略。
  • .com 为顶级域名,xiedaimala.com 为二级域名,每一级的域名控制它下一级域名的分配。
  • 顶级域名有国家顶级域名:cn、us、jp 等,和国际顶级域名:.com(工商企业)、.net(网络提供商)、.org(非盈利组织) 等。
  • 三级域名是二级域名的子域名,是二级域名的附属物而无需单独付费。
  • 不加 www 的裸域名也可以正常运作,且更加简短、容易记忆。
  • 在三级域名左侧的就是主机名,标识网络上的特定计算机,如 ns2.a.shifen.com.