URL的基本知识,内容包括URL的作用、IP和端口、域名和 IP、页面请求。
一、URL 的作用
URL 的全称是 Uniform Resource Locator -- 统一资源定位服务,能够定位到一个设备给我们提供的服务,由以下几个部分组成。
协议 + 域名或 IP + 端口号 + 路径 + 查询字符串 + 锚点
二、IP 和端口
IP 是用来定位一个设备的,端口用来定位这个设备的服务的。
1. IP
Internet Protocol -- 互联网协议,主要约定了两件事,一是如何定位一台设备,二是如何封装数据报文,已跟其他设备交流,具体内容我们不关心。
只要你在互联网中,你就有至少一个独特的 IP,IP 分为内网和外网,路由器是中间纽带,连通内网和外网。
只要路由器连上电信的服务器,那么路由器就会有一个「外网 IP」,在网址:ip138.com 上可以查到外网 IP。
路由器会在家中创建一个内网,内网中的设备使用内网 IP,一般来说这个 IP 的格式都是 192.168.xxx.xxx,ipconfig 命令可以查到内网 IP。
内网中的设备可以互联访问,但是不能直接访问外网,内网设备想要访问外网,就必须经过路由器中转,外网中的设备可以互相访问,但是无法访问你的内网,外网设备想要把内容送到内网,也必须通过路由器,所以路由器有时候也被叫做「网关」。
几个特殊的 IP:127.0.0.1 -- 表示自己,localhost --- 通过 hosts 指定为自己,0.0.0.0 -- 不表示任何设备。
2. 端口
IP有了,还需要端口,一台机器可以提供很多服务,每个服务一个号码,这个号码就叫端口号 port。
一台机器可以提供不同服务,要提供 HTTP 服务最好使用 80 端口,要提供 HTTPS 服务最好使用 443 端口,要提供 FTP 服务最好使用 21 端口,一共 65535 个端口(基本够用)。
0 到 1023(2 的 10 次方减 1)号端口留给系统使用的,其他端口可以留给普通用户使用,一个端口如果被占用,你就只能换一个端口。
总而言之,IP 和端口缺一不可。
三、域名和 IP
域名就是对 IP 的别称,通过 DNS -- Domain Name Server/System 将域名和 IP 对应起来。
一个域名可以对应不同 IP,这个叫均衡负载,防止一台机器扛不住。一个 IP 可以对应不同域名,这个叫做共享主机,穷开发者会这么做。
当上网输入一个网址时,有以下过程:
- 你的 Chrome 浏览器会向电信/联通提供的 DNS 服务器询问 网址对应什么 IP
- 电信/联通会回答一个 IP(具体过程很复杂,不研究)
- 然后 Chrome 才会想对应 IP 的 80/443 端口发送请求
- 请求内容是查看网址
查询一个域名的 IP 可以用 ping 命令和 nslookup 命令,如下所示。我们电脑是自动获取 DNS 服务器地址的,在网络适配器里可以看到,也可以 手动选择 DNS 服务器。114.114.114.144 是电信给我们公开的一个 DNS 服务器。
ping baidu.com
nslookup baidu.com
域名还分顶级域名、二级域名、三级域名,如:
com 是顶级域名
baidu.com 是二级域名(俗称一级域名)
www.baidu.com 是三级域名(俗称二级域名)
四、页面请求
- 如何请求不同的页面
路径可以做到,路径是没有必要有后缀的,如下所示:
https://developer.mozilla.org/zh-CN/docs/Web/HTML
https://developer.mozilla.org/zh-CN/docs/Web/CSS
- 同一个页面,不同请求
查询参数可以做到,?wd=hi 就是查询参数,如下所示:
https://www.baidu.com/s?wd=hi
https://www.baidu.com/s?wd=hello
- 同一内容,不同位置
锚点可以做到,#参考书 就是锚点,如下所示:
https://developer.mozilla.org/zh-CN/docs/Web/CSS#参考书
https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
锚点看起来有中文,实际不支持中文,并且锚点是无法在 Network 面板看到的,因为锚点不会传给服务器。
「资料来源:©饥人谷」