统一资源定位符(Uniform Resource Locator),是一个给定的独特资源在 web 上的地址,俗称网址。 URL 的组成如下:
[协议类型]://[域名或IP]:[端口号]/[路径]?[查询字符串]#[锚点]
协议
主要有 HTTP 协议和 HTTPS 协议。
域名 / IP
IP
IP 地址代表了一个互联网上的独特位置,每个上网的设备都有自己独立的 IP 地址。
IP 分为外网 IP 和内网 IP,它约定了如何定位一台设备;如何封装设备报文,以跟其他设备交流。
几个特殊的 IP:
127.0.0.1表示自己localhosts通过 hosts 指定为自己0.0.0.0不表示任何设备
域名
域名是对 IP 的别称。
注意:www.baidu.com 和baidu.com 不是一个域名。
- 一个域名可以对应多个 IP,称为负载均衡。这是为了防止一台机器无法同时为大量用户提供服务。
比如不同地区ping baidu.com就会得到不同的 IP 地址。 - 一个IP也可以对应多个域名,称为主机共享。
可以使用 nslookup 查看
也可以使用 ping 命令来查看某个域名的 IP 地址
ping 出来是本地区的服务器的地址,主要用来测试本机于服务器的联通性;而 nslookup 是能看到所有的地址。
DNS
全称 Domain Name System,它的作用是把域名和 IP 对应起来。
DNS 请求的工作流程:
- 在浏览器地址栏输入域名。
- 浏览器询问本机是否识别到此域名的 IP 地址(本地 DNS 缓存)。是的话,域名转换为 IP 地址,然后浏览器于服务器交换内容,结束。
- 如果本地 DNS 缓存中没有此域名对应的 IP 地址,它会询问一个 DNS 服务器(这个服务器的工作就是告诉电脑已注册域名对应的 IP 地址),然后浏览器和网络服务器交换内容,结束。
端口
一台机器通过不同的端口来提供不同的服务。如 80 端口提供 HTTP 服务,443 端口提供 HTTPS 服务,21 端口提供 FTP 服务(文件传输协议)。
- 一共有 65535 个端口。
- 0 到 1023 端口是给系统使用的,拥有管理员权限之后,才能使用这 1024 个端口。
- 其他端口给普通用户使用,如 http-server 默认使用 8080 端口。一个端口如果杯占用,就只能换一个端口。
IP 地址提供定位,端口提供服务,两者缺一不可。
路径 & 查询参数 & 锚点
使用不同路径可以请求不同的页面。
developer.mozilla.org/zh-CN/docs/… developer.mozilla.org/zh-CN/docs/…
使用不同的查询参数可以在同一页面得到不同的内容。
使用锚点可以定位同一页面的不同位置。
注意:
- 锚点看上去有中文,但实际不支持中文,会把中文进行编码。
- 锚点是无法再 Network 面板看到的,因为锚点不会传给服务器,所以不要拿锚点传参数。