Web 开发 17
1 什么是路由?
“路由”(Routing)是计算机网络中的核心概念,简单来说,它指的是将数据从 “起点”(如你的手机、电脑)通过网络传递到 “终点”(如目标服务器、另一台设备)的过程,本质是为数据寻找一条最优传输路径的 “决策与执行机制”。
可以把它类比成现实中的 “快递配送”:你的设备是 “寄件地址”,目标服务器是 “收件地址”,数据是 “快递包裹”,而 “路由” 就是快递系统规划配送路线(比如从北京寄到上海,先到区域分拣中心,再转航空 / 陆运,最后到当地网点派送)、并按路线转运包裹的全过程。
一、路由的核心作用:解决 “数据往哪走” 的问题
在复杂的网络(比如互联网)中,数据不会直接从起点 “跳” 到终点,而是要经过多个中间设备(如路由器、交换机)。路由的核心价值就是解决两个关键问题:
- 路径选择:在众多可能的传输路径中,选择一条 “最快、最稳定、最经济” 的路线(比如避开拥堵的节点、优先走带宽高的链路)。
- 数据转发:按照选定的路径,将数据从一个网络设备传递到下一个,直到抵达目标设备。
二、路由如何工作?关键依赖 “路由表”
路由的决策过程,主要依赖网络设备(尤其是路由器)中的 “路由表”(Routing Table)—— 这是一张记录了 “目标网络地址” 与 “下一跳设备地址” 对应关系的 “地图”。
举个具体例子理解:
假设你的电脑(IP:192.168.1.100)要访问百度服务器(IP:180.101.49.12),过程如下:
- 你的电脑先检查自身路由表:发现百度 IP 不在本地局域网(192.168.1.x),于是将数据发给 “网关”(即你家的路由器,IP:192.168.1.1)。
- 家用路由器检查自身路由表:发现百度 IP 属于 “互联网公网”,于是将数据转发给你的宽带运营商的路由器(“下一跳”)。
- 运营商路由器继续查路由表,将数据转发给更上层的骨干网路由器,经过多次类似转发,数据最终抵达百度的服务器。
- 百度服务器的响应数据,会沿着相反的路由路径,传回你的电脑。
三、路由的两种主要类型
根据路径规划的方式,路由可分为 “静态路由” 和 “动态路由”,二者的适用场景差异很大:
类型 | 定义 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|
静态路由 | 由网络管理员手动在路由器中配置路由表条目,不会自动更新。 | 配置简单、稳定,不占用网络资源 | 无法自动适应网络变化(如链路故障),大型网络中维护成本极高 | 小型网络(如家庭、小型办公室)、固定链路场景 |
动态路由 | 路由器通过 “动态路由协议”(如 OSPF、BGP)自动交换网络信息,动态生成和更新路由表。 | 能自动适应网络变化(如故障自愈),适合大型网络 | 配置复杂,协议会占用一定网络带宽和设备资源 | 大型网络(如企业园区网、互联网骨干网) |
四、总结
- “路由” 是数据在网络中 “找路、赶路” 的全过程,是实现设备互联(尤其是跨网络互联)的基础。
- 路由器是执行路由功能的核心设备,而 “路由表” 是路由器的 “导航地图”。
- 日常上网(刷视频、聊微信)的每一次数据传输,背后都依赖路由机制的支撑。
2 什么是URL?
URL(Uniform Resource Locator,统一资源定位符),通俗来说就是我们常说的 “网址”,它是互联网中用于精确定位和访问某个资源(如网页、图片、视频、文件等)的标准化字符串格式。
简单类比:如果把互联网看作一座巨大的城市,那么每个资源(如一个网页)就是城市里的一栋建筑,而 URL 就是这栋建筑的 “详细地址”—— 通过这个地址,浏览器(或其他网络工具)能准确找到并 “拜访” 这个资源。
一、URL 的核心作用
- 定位资源:明确资源在互联网中的具体位置(哪个服务器、哪个路径下的哪个文件)。
- 指定访问方式:告诉浏览器或工具该用什么协议(如 HTTP、HTTPS)去获取这个资源。
- 标准化访问:无论资源类型(网页、图片、API 接口)或存储位置如何,都用统一的格式描述,确保全球所有网络设备都能理解和解析。
二、URL 的典型结构(以https://www.example.com:8080/blog/article?id=123&sort=newest#comment
为例)
一个完整的 URL 通常由6 个核心部分组成,部分场景下某些组件(如端口、查询参数、锚点)可能省略。各部分的含义和作用如下:
组成部分 | 示例中的对应内容 | 含义与作用 |
---|---|---|
协议(Scheme) | https | 规定访问资源的 “通信规则”,告诉客户端(如浏览器)如何与服务器交互。常见协议: - http :超文本传输协议(未加密,安全性低,逐渐被淘汰)- https :HTTP 的加密版本(基于 SSL/TLS,安全,现在主流)- ftp :文件传输协议(用于传输文件)- mailto :用于发送邮件(如mailto:abc@example.com ) |
域名(Domain Name) | www.example.com | 资源所在服务器的 “友好名称”,本质是替代难记的 IP 地址(如www.example.com 对应某个服务器 IP,如192.168.1.1 )。注: www 是常见的子域名,代表 “万维网服务”,其他子域名如blog.example.com (博客子站)、api.example.com (接口服务)。 |
端口(Port) | 8080 | 服务器上用于接收特定类型请求的 “门户编号”(类似酒店的房间号)。 - 默认端口可省略: http 默认端口是80 ,https 默认端口是443 (如https://www.example.com 实际访问的是443 端口);- 非默认端口必须显式指定(如 8080 、8081 ,常见于开发环境或特殊服务)。 |
路径(Path) | /blog/article | 资源在服务器上的 “文件路径”,类似电脑中 “文件夹 / 文件名” 的结构,用于定位服务器内具体的资源位置(如/blog/article 可能对应服务器上/var/www/blog/article.html 这个文件)。 |
查询参数(Query Parameters) | id=123&sort=newest | 向服务器传递的 “额外请求信息”,用于筛选、排序或指定资源的具体条件。 - 格式:以 ? 开头,多个参数用& 分隔,每个参数是键=值 的形式;- 示例中 id=123 表示请求 “ID 为 123 的文章”,sort=newest 表示 “按最新排序”。 |
锚点(Fragment) | #comment | 用于定位 “资源内部的特定位置”,仅在客户端(如浏览器)生效,不会发送到服务器。 - 常见于长网页:如 #comment 表示跳转到当前文章的 “评论区”;- 注:锚点后面的内容不会被服务器接收,仅浏览器用于页面内滚动定位。 |
三、常见 URL 示例与解析
为了更直观理解,我们解析几个不同场景的 URL:
普通网页 URL
https://www.baidu.com/s?wd=URL&rsv_spt=1
- 协议:
https
(加密传输) - 域名:
www.baidu.com
(百度服务器) - 端口:省略(默认
443
) - 路径:
/s
(百度搜索的处理路径) - 查询参数:
wd=URL
(搜索关键词是 “URL”)、rsv_spt=1
(百度内部的参数,用于标识请求类型) - 锚点:省略
- 协议:
带端口的 URL(开发场景常见)
http://localhost:3000/index.html
- 协议:
http
(未加密,本地开发常用) - 域名:
localhost
(代表 “本机”,对应 IP127.0.0.1
) - 端口:
3000
(开发服务器的自定义端口) - 路径:
/index.html
(本机服务器上的index.html
文件) - 查询参数 / 锚点:省略
- 协议:
带锚点的长网页 URL
https://baike.baidu.com/item/URL#3
- 协议:
https
- 域名:
baike.baidu.com
(百度百科服务器) - 路径:
/item/URL
(“URL” 词条的页面路径) - 锚点:
#3
(跳转到词条中 “历史” 相关的章节,具体对应页面内id="3"
的元素)
- 协议:
四、URL 与 URI 的区别(补充知识)
很多人会混淆 URL 和 URI(Uniform Resource Identifier,统一资源标识符),简单说二者是 “包含关系”:
- URI:是一个更宽泛的概念,指 “用于识别资源的唯一字符串”,它包含两种形式 ——URL(通过 “位置” 识别资源)和 URN(通过 “名称” 识别资源,如
urn:isbn:9787115428028
,通过 ISBN 编号识别某本书,不依赖位置)。 - URL:是 URI 的子集,特指 “通过位置定位资源” 的标识符(即我们日常说的网址)。
日常场景中,我们说的 “网址” 既是 URL,也是 URI;但 URI 不一定是 URL(如 URN)。
总结
- URL 就是 “网址”,是访问互联网资源的 “地址”。
- 一个完整的 URL 由协议、域名、端口、路径、查询参数、锚点组成,各部分分工明确,共同实现 “精准定位资源”。
- 我们在浏览器地址栏输入的字符串、点击链接的地址,本质都是 URL。
3 Dashboard中文
搞不清楚还是弄懂一下中文比较重要。
“dashboard” 的中文翻译主要有仪表盘和控制台,具体使用需结合场景,核心含义是 “集中展示关键信息、数据或操作入口的界面 / 面板”。
1. 最常用翻译:仪表盘(侧重数据 / 信息展示)
这是当前最主流的译法,尤其在互联网、数据分析、软件系统中,指 “将核心数据、指标以可视化(如图表、数字)形式集中呈现的界面”,方便用户快速查看和掌握关键情况。
- 常见场景:
- 数据工具(如 Excel、Power BI、Tableau)中的 “数据仪表盘”,展示销售额、用户增长等指标;
- 企业管理系统中的 “业务仪表盘”,汇总各部门核心绩效;
- 手机 APP 的 “个人中心仪表盘”,显示余额、使用时长等信息。
- 例句:打开后台的 “用户数据仪表盘”,就能看到本周的新增用户数和活跃度。
2. 补充翻译:控制台(侧重操作控制)
在涉及设备控制、系统管理的场景中,若 “dashboard” 不仅展示信息,还包含操作按钮(如启动、设置、故障处理),可译为 “控制台”,更突出 “控制功能”。
- 常见场景:
- 汽车驾驶舱的 “仪表盘”(也叫控制台,既显示车速、油量,也有空调、灯光控制按钮);
- 服务器管理界面的 “系统控制台”,可查看运行状态并执行重启、配置等操作;
- 智能家居的 “中控仪表盘”,能查看设备状态并控制开关。
- 例句:通过服务器的 “管理控制台”,可以实时监控 CPU 使用率并调整配置。
总结:如何选择译法?
场景特点 | 推荐翻译 | 典型例子 |
---|---|---|
以数据展示、指标查看为主 | 仪表盘 | 数据分析工具、业务监控界面 |
兼顾信息展示与操作控制 | 控制台 | 汽车驾驶舱、服务器管理界面 |
日常使用中,尤其在软件、互联网领域,“仪表盘” 是更通用、易理解的译法;若涉及硬件设备或强控制功能,“控制台” 更贴合场景。
4 前端路由里 “相对路径” 和 “绝对路径” 的知识
老师在讲解前端路由中 “相对路径” 与 “绝对路径” 在路由匹配和 URL 生成上的区别,结合示例代码和对应的 URL 来展示不同路径配置如何影响最终访问地址。
逐部分解析
1. 左侧:路由配置代码
代码用类似 React Router 的语法(<Router>
<Home>
<Dashboard>
<Team>
等组件)定义了三条路由规则:
<Home path="/" />
:路径为绝对路径(以/
开头),匹配根路径sports.com/
。<Dashboard path="dashboard" />
:路径为相对路径(不以/
开头),它的匹配规则会 “继承父路由的路径”。<Team path="/team" />
:路径为绝对路径(以/
开头),直接匹配sports.com/team
。
2. 右侧:不同路由对应的最终 URL
基于左侧的配置,当用户访问不同组件时,最终的 URL 会有不同表现:
sports.com
:匹配<Home path="/" />
,因为是根路径,直接访问域名即可。sports.com/dashboard
:<Dashboard>
是相对路径,它会 “拼接在父路由的路径之后”。假设父路由(这里可以理解为<App>
或<Router>
对应的基础路径)是根路径,所以最终路径是根路径 + dashboard
→sports.com/dashboard
。sports.com/team
:<Team>
是绝对路径,直接 “覆盖” 基础路径,所以直接匹配sports.com/team
。
3. 底部字幕:核心结论
字幕 “dashboard
是一个相对路径,而斜杠 team
是一个绝对路径”,直接点明了两者的本质区别:
- 相对路径(如
dashboard
):路径不以/
开头,会 “继承 / 拼接” 父级路由的路径。 - 绝对路径(如
/team
):路径以/
开头,会 “直接从根路径开始匹配”,不受父级路由影响。
总结
老师通过这个例子,想让大家理解:在前端路由(如 React Router、Vue Router 等)中,路径是否以 /
开头,会决定路由是 “相对父路径拼接” 还是 “绝对从根路径匹配”,进而影响最终用户访问的 URL。
一、先搞明白 “前端路由” 是啥(基础铺垫)
你可以把 “前端路由” 想象成网站里的 “导航员”。
比如你逛一个叫 sports.com
的网站,里面有 “首页”“仪表盘”“团队” 这些不同页面。前端路由的作用就是:当你点击不同导航按钮时,它能精准地把你带到对应的页面,还不用整个网页重新加载(就像在同一个大房子里,从客厅走到卧室,房子没拆了重盖,只是换了房间)。
二、“路径” 是路由的 “地址暗号”
每个页面都得有个 “地址”,这样路由才能找到它。这个 “地址” 就是路径(path)。比如 “首页” 的路径可能是 /
,“仪表盘” 可能是 dashboard
,“团队” 可能是 /team
。
三、关键区分:相对路径 vs 绝对路径(核心知识)
路径分两种,就像你去朋友家,有 “跟着导航从自家出发”(绝对路径)和 “从当前路口往前走”(相对路径)两种走法~
1. 绝对路径:“从根开始,直奔目标”
- 特点:路径以
/
开头(比如/team
)。 - 效果:不管当前在哪个页面,路由都会从网站的 “根目录”(也就是
sports.com
开头)重新拼接路径。 - 例子:如果配置
<Team path="/team" />
,不管你之前在sports.com
还是sports.com/dashboard
,点击 “团队” 时,都会直接跳转到sports.com/team
。
2. 相对路径:“跟着当前位置,接着走”
- 特点:路径不以
/
开头(比如dashboard
)。 - 效果:路由会以 “当前页面的路径” 为基础,拼接上相对路径。
- 例子:假设当前在
sports.com
(根路径),配置<Dashboard path="dashboard" />
,那么 “仪表盘” 的最终路径就是sports.com/dashboard
(根路径 + 相对路径dashboard
)。
四、用例子再巩固一遍(结合课件)
课件里左边是路由配置(告诉路由每个页面的 “地址暗号”),右边是最终生成的 URL(实际访问的地址)。
路由配置代码 | 路径类型 | 最终 URL | 为啥这么生成 |
---|---|---|---|
<Home path="/" /> | 绝对路径 | sports.com | 以 / 开头,直接匹配网站根目录。 |
<Dashboard path="dashboard" /> | 相对路径 | sports.com/dashboard | 不以 / 开头,所以 “继承” 当前的基础路径(这里基础路径是根路径 sports.com ),拼接后就是 sports.com/dashboard 。 |
<Team path="/team" /> | 绝对路径 | sports.com/team | 以 / 开头,直接从根目录拼接,所以是 sports.com/team 。 |
五、总结一下(小猪猪版记忆法)
- 绝对路径:带
/
,像 “从家直接去商场”,不管在哪,都从家出发。 - 相对路径:不带
/
,像 “从当前路口去便利店”,得看现在在哪儿,再接着走。
这样路由就能根据不同的 “路径暗号”,准确把你带到想去的页面啦~是不是超简单!