一、URL
URL(Uniform Resource Locator,统一资源定位符)= 协议 + 域名或IP + 端口 + 路径 + 查询参数 + 锚点。
一个完整的 URL 示例:
https://www.baidu.com:80/path/index.html?key1=value1&key2=value2#锚点
1. 协议
- 协议是浏览器请求服务器资源的方法,如上面的
https:// - 互联网支持多种协议,如果 URL 中不写协议,那么将默认使用
http协议 HTTPS协议是HTTP协议的加密版本,相对HTTP协议更安全
2. 域名或IP
- 域名是资源所在网站或者服务器的名字,如上面的
www.baidu.com - 域名是 IP 的别称,如
baidu.com对应的 IP 为220.181.38.148或220.181.38.148 - 域名的详细介绍见下文
3. 端口
- 端口号
- 一台主机(域名)可以提供很多服务,每个服务都有个号码,这个号码就是端口号,如上面的
80 - 要提供
HTTP服务,最好使用 80 端口 - 要提供
HTTPS服务,最好使用 443 端口 - 要提供
FTP服务,最好使用 21 端口 - 如何正确使用端口
- 维基百科-端口列表(需要科学上网)
- 搜索关键字:“端口列表”
- 端口使用规则
- 0 到 1023 号端口是留给系统使用的,只有拥有了管理员权限,才能使用这 1024 个端口
- 其他端口可以给普通用户使用,比如 http-server 默认使用 8080 端口
- 一个端口如果被占用,就只能换另一个端口,如:
http-server . -c-1 -p 1234 # -p, port, 使用 1234 端口,比 1023 大就行 - 默认端口是 80 端口(可以省略不写)
4. 路径
- 一个网站可能会有很多页面,路径可以做到请求不同的页面,如上面的
/path/index.html
5. 查询参数
- 查询参数可以让同一个页面显示不同的内容,如上面的
key1=value1&key2=value2 - 用百度搜索不同的单词:
https://www.baidu.com/s?wd=hello # 查询参数跟在 ? 后面 https://www.baidu.com/s?wd=world
6. 锚点
- 锚点可以做到显示同一个页面的不同位置,如上面的
锚点 - 注意,上面的 URL 看起来有中文,但其实不支持中文,浏览器会自动将中文转码,
#锚点会变成#%E9%94%9A%E7%82%B9 - 锚点不会传给服务器,如果要往服务器传参数,不要放到
#后面
二、DNS
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将 域名 和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 ——百度百科
简单来说,浏览器访问一个域名,会先向电信或联通提供的 DNS 服务器询问该域名对应的 IP,得到 IP 地址后,再向该 IP 的 80(HTTP协议)/443(HTTPS协议)端口发送请求。
使用 nslookup 命令可以查看某个域名对应的 IP 地址:
nslookup baidu.com # 询问 baidu.com 的 IP, ns 是域名, lookup 是寻找
三、IP
IP 主要约定了两件事:
- 如何定位一台设备
- 如何封装数据报文,以跟其他设备交流
只要你在互联网中,你就有至少一个独特的 IP。
几个特殊的 IP:
- 127.0.0.1:表示自己
- localhost:可以通过 hosts 指定为自己
- 0.0.0.0:不表示任何设备
四、域名
域名可以理解成是 IP 的别称。
- 一个域名可以对应不同 IP,这叫做均衡负载,防止一台机器扛不住
- 一个 IP 可以对应不同域名,这叫做共享主机
域名又可以分为一级域名、二级域名、三级域名,以 www.baidu.com 为例:
com是一级域名(顶级域名),其他如cn、org、tt等也是一级域名baidu.com是二级域名www.baidu.com是三级域名