浅析 URL

404 阅读4分钟

HTTP

IP和端口号组成了你的网络地址

一、IP(Internet Protocal)

  • 主要约定了两件事情:
    1. 如何定位一台设备
    2. 如何封装数据报文,以及跟其他设备交流。具体内容分并不关心。
  • IP特点(内网和外网):
    1. 只要你在互联网中,你就至少有一个单独的IP(这里指的是外网IP)。
    2. 一般外网IP指的是路由器以外的IP,内网IP指的是路由器里面的IP。
    3. 外网IP可以理解为你在互联网中的地址。可以通过ip138.com查询你的外网IP。
    4. 内网IP一般是路由器创建的。内网的设备使用的就是内网IP,路由器一般给自己分配的IP是192.168.0.1(不是每个都一样)。然后给同一个内网中的其他设备分配的IP是192.168.1.2等,以此类推。

路由器的功能

  • 现在的路由器有两个IP,一个外网IP和一个内网IP
  • 内网中的设备可以互相访问,但不能直接访问外网。
  • 内网设备想要访问外网,就必须经过路由器中转。
  • 外网中的设备可以互相访问,但是无法访问你的内网。
  • 外网设备想要把内容送到内网,也必须通过路由器。
  • 内网和外网就像两个隔绝的空间,无法互通,唯一的连通点就是路由器。
  • 所以路由器也叫做网关
  • 如果一个家庭装了两个路由器,那么两个路由器之间也是隔绝的。

几个特殊的IP

  • 127.0.0.1表示自己
  • locallhost 通过hosts指定为自己。也可以指定为其他名称。赋予管理员身份后进行设置即可。
  • 0.0.0.0不表示任何设备。

二、端口

  • 一台机器可以提供很多服务,每个服务一个号码,这个号码就叫做端口号 port
  • 比喻: 麦当劳提供了两个窗口,一个是卖炸鸡汉堡的,另一个是卖甜品的。不同类型的窗口只能点相关类型的餐,不然会遭到拒绝。端口就相当于这些窗口。
  • 每一台机器可以提供很多不同的服务:
    1. 当提供HTTP服务最好使用80端口
    2. 当提供HTTPS服务最好使用443端口
    3. 当提供FTP服务最好使用21端口
    4. 一共有65535个端口(基本够用)
  • 点击这里 查看端口列表,就可以知道用什么端口了。

端口规则

  • 0到1023(2的10次方减1)号端口是留给系统使用的
  • 你只有拥有了管理员权限之后,才能够使用这1024个端口。
  • 其他端口可以给普通用户使用。
  • 比如http-server就是默认使用8080端口
  • 一个端口如果被占用,你就只能换其他端口了。

总而言之,言而总之: IP和端口两者缺一不可。

三、域名

  • 域名就是对IP的别称
  • 通过ping xxxxxx.com 可以查看相应网址对应的IP。
  • 知识点:
    1. 一个域名可以对应不同的IP(访问的人太多了,一个IP承受不住,需要分多个IP),这个叫做均衡负载,防止一台机器扛不住。
    2. 一个IP可以对应不同域名,这个叫做共享主机,一般穷开发者才会这么做。(大家共享一个机器)
  • 域名和IP是通过DNS对应起来的:
    • 过程:(以baidu.com为例)
      1. 你的浏览器会向电信/联通等公司提供的DNS服务器询问baidu.com对应什么IP。
      2. 电信/联通会回答一个IP
      3. 浏览器向对应IP的80/443端口发送请求。
      4. 请求的内容是查看baidu.com的首页
    • 为什么端口是80 或 443?
      • 服务器默认用80提供http服务
      • 服务器默认用443提供https服务
      • 可以在开发者工具里看到具体的端口
  • WWW
    • www.xxxxxx.com 和 xxxxx.com 不是同一个域名
    • 两者之间的关系:
      • com 是顶级域名
      • xxxxxx.com是二级域名(俗称一级域名)
      • www.xxxxxx.com是三级域名(俗称二级)
      • 两者是父子关系,www开头是子。
      • 例如:github.io 把子域名 xxx.github.io 免费给你使用
      • 所以你应该知道www.xxxxxx.com和xxxxxx.com可能是同一家公司,也可能不是同一家公司。
    • 如何请求不同的页面?
    • 同一个页面可以呈现出不同的内容
    • 同一个内容,不同的位置
      • 通过锚点(#)可以做到
      • 注意:锚点看起来有中文,但是实际上是不支持中文的。
      • 相应中文会变成对应的字符串信息。
      • 锚点无法在Network面板看到,因为锚点是不传给服务器的。
  • URL
    • URL组成: 协议+域名或IP+端口号+路径+查询字符串+锚点
    部分内容来源于:xiedaimala.com