URL
网络和IP
IP全称为Internet Protocal
主要约定了两件事:
- 如何定位一台设备
- 如何封装数据报文,以跟其他设备交流
只要你在互联网中,就至少拥有一个独特IP
外网IP
路由器连上电信运营商的服务器,那么服务器就会有一个外网IP,比如14.17.32.211。这就是用户在互联网中的地址。
如果重启路由器,很有可能会重新分配一个外网IP,既路由器没有固定外网IP,除非花钱买。
内网IP
路由器会在家里创建一个内网,内网中的设备使用内网IP,一般这个IP的格式都是192.168.xxx.xxx,如192.168.1.1。
路由器会给每一个内网中的设备分配一个不同的内网IP,如电脑是192.168.1.2,手机是192.168.1.3,以此类推。
数字最大为255。
路由器的功能
现在路由器有两个IP,一个外网IP,一个内网IP。
内网中的设备可以互相访问,但是不能直接访问外网。内网设备想要访问外网,就必须经过路由器的中转。
外网中设备可以互相访问,但是无法直接访问到用户的内网。外网设备想要把内容送到内网,也必须通过路由器,也就是说内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器。
所以路由器有时候也被叫做【网关】。
几个特殊的IP
-
127.0.0.1表示自己
-
localhost通过hosts指定为自己
C:\Windows\System32\drivers\etc\hosts,用管理员方式打开编辑器(如记事本),再打开hosts
-
0.0.0.0不表示任何设备
端口
有了IP还需要端口
一台机器可以提供很多服务,每个服务一个号码,这个号码就叫做端口号port
一个比喻:麦当劳提供两个窗口,一号快餐,二号咖啡,去快餐点咖啡会被拒绝,让去另外一个窗口,反之亦然。
一台机器可以提供不同服务,要提供HTTP服务最好使用80端口,要提供HTTPS服务最好使用443端口,要提供FTP服务最好使用21端口。一共有65535个端口(基本够用)。
可以使用维基百科查询应该使用什么端口。
端口使用规则:0到1023(2的10次方减1)号端口是留给系统使用的,用户只有拥有了管理员权限后才能使用这1024个端口。其他端口可以给普通用户使用,比如http-server默认使用8080端口。一个端口如果被占用,用户就只能换一个端口。
总而言之,IP和端口缺一不可。
域名
域名就是对IP的别称
一个域名可以对应不同IP,这个叫做均衡负载,防止一台机器扛不住。
一个IP可以对应不同的域名,这个叫做共享主机,穷开发者会这么做。
域名和IP是通过DNS(Domain Name System域名系统)对应起来的。
当你输入qq.com,浏览器会向电信/联通提供的DNS服务器询问qq.com对应什么IP,电信/联通会回答一个IP(具体过程很复杂,不研究),然后浏览器才会向对应IP的80/443端口发送请求,请求内容是查看qq.com的首页。
可以使用nslookup命令查看域名对应的ip。
如何请求不同的页面:
路径可以做到
使用不同的路径到达不同的页面
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…
同一个页面,不同内容:
查询参数可以做到
不同的参数对应不同的内容
同一个内容,不同位置:
锚点可以做到
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…
注意:锚点看起来有中文,实际不支持中文。#参考书会变成#%E5%8F%82%E8%80%83%E4%B9%A6。锚点无法在Network面板看到,因为锚点不会传给服务器。
URL
Uniform Resource Locator统一资源定位符
协议+域名或IP+(端口号)+路径+查询字符串+锚点
https默认端口443