浅析 URL
HTTP
IP和端口号组成了你的网络地址
一、IP(Internet Protocal)
- 主要约定了两件事情:
- 如何定位一台设备
- 如何封装数据报文,以及跟其他设备交流。具体内容分并不关心。
- IP特点(内网和外网):
- 只要你在互联网中,你就至少有一个单独的IP(这里指的是外网IP)。
- 一般外网IP指的是路由器以外的IP,内网IP指的是路由器里面的IP。
- 外网IP可以理解为你在互联网中的地址。可以通过ip138.com查询你的外网IP。
- 内网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
- 比喻: 麦当劳提供了两个窗口,一个是卖炸鸡汉堡的,另一个是卖甜品的。不同类型的窗口只能点相关类型的餐,不然会遭到拒绝。端口就相当于这些窗口。
- 每一台机器可以提供很多不同的服务:
- 当提供HTTP服务最好使用80端口
- 当提供HTTPS服务最好使用443端口
- 当提供FTP服务最好使用21端口
- 一共有65535个端口(基本够用)
- 点击这里 查看端口列表,就可以知道用什么端口了。
端口规则
- 0到1023(2的10次方减1)号端口是留给系统使用的
- 你只有拥有了管理员权限之后,才能够使用这1024个端口。
- 其他端口可以给普通用户使用。
- 比如http-server就是默认使用8080端口
- 一个端口如果被占用,你就只能换其他端口了。
总而言之,言而总之: IP和端口两者缺一不可。
三、域名
- 域名就是对IP的别称
- 通过
ping xxxxxx.com 可以查看相应网址对应的IP。
- 知识点:
- 一个域名可以对应不同的IP(访问的人太多了,一个IP承受不住,需要分多个IP),这个叫做均衡负载,防止一台机器扛不住。
- 一个IP可以对应不同域名,这个叫做共享主机,一般穷开发者才会这么做。(大家共享一个机器)
- 域名和IP是通过DNS对应起来的:
- 过程:(以baidu.com为例)
- 你的浏览器会向电信/联通等公司提供的DNS服务器询问baidu.com对应什么IP。
- 电信/联通会回答一个IP
- 浏览器向对应IP的80/443端口发送请求。
- 请求的内容是查看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可能是同一家公司,也可能不是同一家公司。
- 如何请求不同的页面?
- 通过修改路径可以做到:
- 可以使用Chrome 开发者工具Network面板查看区别
- 同一个页面可以呈现出不同的内容
- 同一个内容,不同的位置
- 通过锚点(#)可以做到
- 注意:锚点看起来有中文,但是实际上是不支持中文的。
- 相应中文会变成对应的字符串信息。
- 锚点无法在Network面板看到,因为锚点是不传给服务器的。
- URL
- URL组成: 协议+域名或IP+端口号+路径+查询字符串+锚点
部分内容来源于:xiedaimala.com