从URL结构到短链安全:Web链接原理与工程实践全解

你有没有想过,每天在浏览器里点下去的链接,到底是什么?一个蓝色下划线的文本,一个二维码,一条短网址,背后涉及的其实是一整套协议、解析规则和工程实践。我做了很多年 Web 开发和系统维护,自己也搭过私有的短链服务,链接这东西看似简单,真正往深了挖,能聊的东西非常多。这篇就围绕“链接”本身,把它的结构、它在浏览器里走过的路、写链接时容易踩的坑,以及短链和链接安全这些话题一次性梳理清楚。适合前端、后端、运维,以及任何在工作中需要处理网址和推广链接的人参考。

1. 链接到底是什么:从“地址”到“引用”的思维转换

1.1 链接的三层结构

很多人把链接等同于 URL,这个说法其实不算准确。链接是一个抽象的引用关系,URL 只是它的承载形式。在一个 HTML 文档里,链接由三部分构成:链接的起点、链接的目标、链接的行为。起点就是你自己页面里的那个<a>标签或者某个按钮;目标是对方资源的地址,也就是 URL;行为则是点击后浏览器怎么处理,是在当前标签页打开,还是新窗口打开,还是跳到页面某个锚点。

这个视角非常重要。我见过不少刚入门的朋友,写链接时只关注href="..."里的内容,完全忽略了target和rel这两个属性的作用,结果上线后点击链接把原页面覆盖了,用户想返回都难。链接不是“一个网址”,它是一条完整的交互路径,起点、目标、行为三者必须同时成立,才是一个合格链接。

再说 URL 本身。一个标准的 URL 其实能拆成好几个部分,比如:

scheme://user:password@host:port/path?query#fragment
  • scheme是协议,常见的有http、https、mailto、tel。
  • host是主机名,可以是域名,也可以是 IP 地址。
  • port是端口,http默认 80,https默认 443。
  • path是资源路径,对应服务器上的目录或路由。
  • query是查询参数,用来向服务器传递键值对。
  • fragment是片段标识符,用来定位页面内的某个锚点位置。

这六个部分里,初学者最容易忽略的是fragment。它不会发送到服务器,完全是浏览器本地行为。也就是说,https://example.com/page#section2里的#section2只会让浏览器在页面加载完成后滚动到id="section2"的元素位置,服务器拿到的路径依然是/page。这一点在做单页应用时尤其重要,因为很多前端路由就是靠hash来切换视图的,比如https://example.com/#/dashboard,这种情况下,服务端完全不需要关心hash部分。

1.2 相对链接与绝对链接

HTML 里的链接地址分两种:绝对地址和相对地址。绝对地址就是完整的 URL,包含协议和主机名;相对地址是相对于当前页面的路径,比如../images/logo.png,它表示向上一级目录再进入images目录找图片。

这两者的选择在工程上有明确约定。站点内部资源,尽量用相对地址,这样在本地开发、测试环境、生产环境之间迁移时不用改代码;站外资源,必须用绝对地址。还有一种特殊情况,就是协议相对地址,形如//example.com/api,它表示继承当前页面的协议。在过去,这是规避“页面在 HTTP 下引用 HTTPS 资源被阻止”的常用做法,如今因为 HTTPS 已经普及,这种写法逐渐被淘汰,新项目不建议再用。

我个人踩过的一个坑:在做某跨平台系统时,页面上有一段新闻链接,开发环境用的是/news/detail?id=123,到了生产环境部署在子目录下,结果所有新闻链接全部 404。原因是部署路径变了,相对地址变成了相对于子目录的路径,而后端路由并没有同步配置。后来统一改成基于站点根目录的绝对路径,并在部署脚本里注入base路径,问题才算彻底解决。这个教训告诉我:链接的写法不仅是个前端问题,它直接和部署架构绑定,改代码时必须同步检查 nginx 或网关的路径转发规则。

2. 链接在浏览器里经历了什么:一整套处理链路

2.1 解析与规范化

从用户点击链接到页面渲染出来,浏览器做的工作远比想象中多。第一步是解析 URL。你输入的地址可能是残缺的,比如直接输入example.com,浏览器会补全协议为https://example.com/。这个过程叫 URL 规范化。

紧接着是字符编码。URL 只允许一部分 ASCII 字符直接出现,空格、中文、特殊符号都需要进行百分号编码。比如空格变成%20,中文变成一串%E4%B8%AD%E6%96%87。这就是为什么你在地址栏看到“搜索 手机”会显示成%E6%90%9C%E7%B4%A2。很多初学者不明白为什么接口地址带中文会报错,其实就是没做编码处理。

对于中文链接,我强烈建议使用标准的encodeURIComponent或者后端的 URLEncoder 做编码,而不是手写替换。手写有一个著名坑:你以为把空格替换成%20就够了,但某些浏览器或服务端还要求把+符号特殊处理,在query部分空格的合法编码其实是+,而在path部分又必须是%20。两套规则混在一起,最容易出错。

2.2 DNS 解析与连接建立

URL 规范化完成后,浏览器开始解析域名。它先从本地缓存里查,查不到就查系统 hosts 文件,再查不到就发起 DNS 查询。这一步是整个链接链路里最影响感知速度的环节,我见过不少“网站加载慢”的问题,用户在浏览器里等半天,最终排查下来是 DNS 解析时间长达数秒,原因是对接的 DNS 服务不靠谱。

DNS 拿到 IP 后,浏览器才会发起 TCP 连接。HTTP 协议现在基本都是建立在 TLS 之上,所以还会经历一次 TLS 握手。如果是 HTTPS 页面,握手里还要校验证书是否有效、域名是否匹配。这个过程中任何一个环节失败,你都会在浏览器看到错误页,英文叫 “ERR_CERT_DATE_INVALID”,中文是“连接不是私密连接”。

这些环节里有大量可优化项,比如 DNS 预取、预连接、预加载。HTML 里可以写:

<link rel="dns-prefetch" href="//cdn.example.com"> <link rel="preconnect" href="//api.example.com">

dns-prefetch是提前解析域名的 DNS,preconnect更进一步,把 TCP 连接和 TLS 握手也提前做好。静态资源服务器和接口服务器是不同域名时,这两个优化很有效。但要注意,只在确定要使用的第三方域名上开启,否则反而浪费连接资源。

2.3 浏览器如何识别链接

网页上的链接主要分三类:<a>标签、JavaScript 里的跳转、表单提交。<a>标签是最直观的,浏览器遇到它会渲染成蓝色可点击文本,用户点击后触发页面跳转。JavaScript 跳转常见于单页应用里,比如location.href = '/new-page',这种方式不刷新整个页面就可以更新路由。表单提交则是把表单数据打包成 URL 参数或 body,然后转向action指定地址。

这里有一个很多人不知道的细节:<a>标签并不一定需要href属性,没有href的<a>标签只是普通文本,点击不会跳转。有些人拿它当按钮用,给一个href="javascript:void(0)",这种写法虽然能阻止跳转,但会把一个本可以用<button>实现的交互搞得语义混乱,影响无障碍访问。我建议所有“点击后执行脚本但不跳转”的场景都直接用<button>,而不是伪造链接。

链接点击后是控制是当前页打开还是新标签打开,由target属性决定。target="_blank"在新标签页打开,target="_self"是默认值,在当前页打开。一个很容易忽略的安全问题:使用target="_blank"时,新页面可以通过window.opener反向控制原页面,这属于 tabnabbing 钓鱼攻击的一种。解决办法是给链接加上rel="noopener":

<a href="https://external.example.com" target="_blank" rel="noopener">外部链接</a>

现代浏览器已经默认在target="_blank"时带上noopener行为,但兼容老浏览器时还是手动加上的好。

3. 实操:写链接时容易忽略的细节

3.1 href、target、rel 的完整参数对照

在实际项目中,管理一个团队共用的代码库时,链接参数不统一会导致线上行为不一致。我在团队里一般会要求所有外链统一规范:外部链接一律加rel="noopener noreferrer",内部跳转一律不带target,特殊需求才允许target="_blank"。

rel属性除了noopener,还有几个值得掌握的取值:

  • nofollow:告诉搜索引擎不要传递权重,常用于推广链接和用户生成内容里的外链。
  • ugc:用户生成内容,比如评论区里的链接,表示这是用户贡献的内容。
  • sponsored:付费或赞助链接,表明链接具有商业性质。
  • noreferrer:不携带来源信息,防止目标站点通过Referer头看到你的来源页面。

这三个属性可以组合使用,比如评论区链接写成rel="nofollow ugc",既是合规要求,也是搜索引擎规范。很多内容平台的页面里看不到这些标签,但打开源码可以验证,凡是用户能提交链接的位置,几乎都加了这个组合。

3.2 URL 编码与中文路径

URL 编码的规则不难,但很多人并不了解何时应该编码、何时应该保持原样。我给出一个可以直接套用的经验:拼接链接时,路径部分使用encodeURI,查询参数部分使用encodeURIComponent。

const base = 'https://example.com/search'; const keyword = '手机 华为'; const url = `${base}?keyword=${encodeURIComponent(keyword)}`;

encodeURIComponent会把空格、中文、问号、&等特殊字符都编码掉,所以一个用户输入的搜索关键词就算包含&或者=,也不会破坏 URL 的参数结构。

服务端接收时,不同的框架会自动解码,但如果你手写路由或者网关,要注意 URL 解码的时机。一个经典的坑:nginx 默认不会自动解码$request_uri,如果你把原始 URI 直接透传给上游,压缩后的链接可能会在上游拿到未解码的中文,导致 404。解决方法是把转发信息改成$uri,让 nginx 先做一次规范化解码。

3.3 链接的可读性与可维护性

链接本身也是一种接口。一个设计良好的 URL 应当让人一眼看懂资源含义,比如/order/20240513/detail就比/index.php?mod=7&id=99213清晰得多。现代 Web 框架都支持路由式的 URL,把业务语义放进路径里,而不是塞进查询参数,这样既方便用户识别,也方便日志分析时用规则直接聚合。

在做整个站点的链接盘点时,我会用爬虫把自己站内的所有链接全量抓一遍,检查是否有 404、死链、重定向链路过长等问题。这一步看似繁琐,却是维护老项目最实用的手段。某次我在梳理旧系统时发现首页存在一条链接跳了 5 次才到目标页,中间的跳转全是历史遗留的废弃地址,首屏性能被拖慢了不少,后来整理成一步到位,页面加载快了一截。

4. 短链接背后的设计与陷阱

4.1 短链接的原理与实现

短链接就是把一个很长的 URL 映射成一个短字符串,访问时再跳转到原地址。原理其实非常简单:一张映射表,存储短码和原地址的对应关系。短码一般由字母数字随机生成,比如aB3dEf,长度 6 位左右能容纳 568 亿种组合,完全够用。

实现上,用户提交一个长链接后,服务端生成唯一的短码,写入数据库,返回https://short.example/x/aB3dEf。用户访问这个短地址时,服务端根据短码查映射表,找到目标地址,返回 302 或 301 重定向。302 表示临时跳转,便于后续修改目标地址;301 表示永久跳转,浏览器和搜索引擎会缓存结果。如果想让短链的统计数据准确,用 302;如果确定地址永不再变,用 301 可以减轻服务器压力。

我自己搭过一个内部短链服务,存储层用的是简单的 KV 数据库,短码生成则采用雪花算法加随机盐的方式,避免出现连续可预测的短码。短码可预测是个大问题,如果别人可以通过遍历短码猜出你的其他链接,就可能绕过访问权限获取内容。为了防遍历,我除了用随机短码,还在跳转前增加了访问频率限制和基于来源 referer 的校验。

4.2 短链接的安全与运营坑

短链接最大的安全风险是恶意跳转。链接被缩短后,用户看不到真实目标地址,钓鱼诈骗就利用这一点,把恶意网站包成短链接后群发出去。所以提供短链服务的团队必须做实时拦截,比如对接恶意域名库,或者对跳转目标做页面内容安全检测。

另一个容易踩的坑是滥用。公开的短链服务如果不对来源 IP、账号、内容做限制,容易被用来传播垃圾信息。我见过一个内部短链服务因为没有做频控,被人用脚本批量生成短链,几小时内数据库写入了数十万条无效记录,拖垮了数据库。后来加了按账号的每日配额、按 IP 的每分钟访问频率限制,才把问题摁住。

运营短链还有时效性问题。有些短链用户在活动结束后失效,写死在短信、邮件里没法再改。好的做法是短链后台支持“改目标地址但短码不变”,这样就算投放后再修改活动规则,旧链接依然可用。对于双十一、大促这类场景,我强烈建议提前就做好跳转层配置,不要在活动上线当天临时改数据库。

5. 链接安全与真实性判断

5.1 钓鱼链接的常见伪装手法

链接安全是所有人都在面对的问题,不是只有安全工程师才需要关心。普通用户和开发者都需要有基础的识别能力。钓鱼链接最常见的伪装方式是“视觉混淆”,比如把example.com拼写成examp1e.com,或者用@符号迷惑视线。如果一个地址里出现@,浏览器会把@之前的内容当成用户名,后面的才是真实主机名,例如https://safe.example@evil.com,看起来像是在访问safe.example,实际去的是evil.com。

第二种常见手法是短链接套短链接。一个短链接跳转到另一个短链接,再跳转到恶意页面,中间的过程用户根本看不到。有人会通过“链接预览”功能先行展开短链的真实目标,看到之后再做判断,这是一种非常实用的自查动作。

第三种手法是免费内容诱惑,比如“点击领取优惠”“输入手机号查看资源”这类,链接地址本身可能是正规域名,但实际落地页会有二次跳转。对于这类,我建议不要轻易在陌生网页里输入个人手机号,可以先用匿名方式打开链接,观察是否有异常跳转,再做决定。

5.2 安全打开未知链接的几个习惯

这里分享几个我自己的操作习惯,用在日常工作中非常管用。

第一,使用链接预览能力。很多聊天工具都支持长按链接看缩略信息,或者鼠标悬停查看状态栏的完整地址。不要只看显示的文本,一定要看真实地址。有些恶意链接会在文字上写https://www.bank.com,但实际href值是另外的地址。

第二,检查 HTTPS 证书。只要是涉及登录、支付、个人信息的页面,必须确认协议是 HTTPS,并且点击地址栏的小锁图标能查看证书信息。页面里虽然可以放一个假的锁图标,但浏览器地址栏的锁是你自己的客户端帮你验证的,可信度更高。

第三,不要下载聊天工具里陌生人发来的可执行文件。链接跳转到一个下载页,下载一个.exe,这种情况要格外警惕。先让文件上传到在线查毒站过一次检测,再决定是否运行。

做完这些再打开链接,能过滤掉大多数明显恶意的情况。对开发者来说,写代码时更不该在日志、后台、文档里直接展示用户可控的链接,而应做转义处理,防止javascript:协议或data:协议被恶意注入。

6. 链接的进阶玩法:追踪与转化

6.1 UTM 参数:给链接装上统计探针

链接不仅能跳转,还能用来追踪流量来源。这就是 UTM 参数,它是在 URL 的查询字符串里追加的一组参数,约定俗成的参数名包括utm_source、utm_medium、utm_campaign、utm_content等。它们不是 HTTP 标准的一部分,并不影响服务端返回的资源,但被统计工具和日志系统广泛识别。

一个带完整 UTM 参数的链接大概长这样:

https://example.com/landing?utm_source=wechat&utm_medium=social&utm_campaign=spring_sale&utm_content=banner1

这样当你看到后台数据里某个页面访问量上升,就能直接归因到是哪次投放、哪个位置、哪个素材带来的流量。企业里做渠道评估时,UTM 几乎是标配。它的实现成本极低,只要是自己的站点,能记录访问日志,就能在后期分析里用到这些参数。

用 UTM 有几个容易出错的地方:一是大小写敏感,参数值里的Spring_sale和spring_sale会被当成两个独立渠道,导致数据混乱。我通常会在生成链接的工具里统一做小写转换和去空格。二是不要把 UTM 参数拼在已有参数的 URL 后面时漏掉分隔符,如果原地址已经有?, 就要用&追加,否则统计参数会失效,甚至影响正常页面加载。

6.2 自有链接管理方案

如果你运营网站、公众号、内容平台,手里会攒下一大批品牌链接、推荐链接、活动链接。这些链接一旦散落在各个文档、帖子、聊天记录里,后期想要统一修改或者复用就会非常痛苦。我的做法是维护一个链接台账,一张表格记录链接的用途、指向地址、投放位置、生效时间和负责人。需要调整落地页时,台账一查就能知道哪些位置需要改。

更工程化的做法是用短链服务统一封装所有对外链接。这样渠道侧放的是同一个短码,落地页变更时,只需要在短链后台修改目标地址,所有渠道自动生效。这对运营效率的提升是非常可观的。另一好处是短链后台会记录每次点击的时间、IP 分布、UA 信息,等于顺带做了渠道统计。

但要注意一点:所有对外链接统一走短链后,短链服务的稳定性就成了命门。我会给短链服务做多实例部署,解析层做多区域容灾,存储层做定时备份。宁可其他系统稍微简陋一点,短链跳转这个环节不能挂,因为所有投放素材、二维码、短信里的链接都指向它,一旦挂了,等于所有渠道都断了。

还有一个实践技巧:短链服务在跳转时可以在响应头里加一个自定义的X-Link-Id,这样下游应用的访问日志里可以直接关联到短码,做全链路追踪时就不用靠猜测来判断某个请求来自哪条渠道,排查问题会快很多。

结束前的一点个人体会

链接这件事,表面上只是一个跳转,但维度的丰富程度远超大多数人的想象。做开发的要从解析、跳转、编码、安全这些角度去维护它;做运营的要学会用 UTM 和短链接把每一次点击变成可度量的数据;普通用户则需要掌握基础的防骗识别能力。我在实际排查故障中体会最深的不是技术多复杂,而是链接一旦失去维护,轻则 404,重则变成钓鱼入口,牵一发而动全身。如果你手里正好有一批对外链接,建议抽个时间全部盘点一遍,把跳转层级、失效情况、归属信息都写清楚,这件事花不了几个小时,但能省下后面一连串的麻烦。

相关新闻

VDA 6.3过程审核深度解析:从评分定级到实战误区

VDA 6.3过程审核深度解析:从评分定级到实战误区

简介&#xff1a;VDA 6.3-2023红皮中文版&#xff08;扫描&#xff09;过程审核第四版&#xff0c;面向汽车供应链质量工程师、内审员及供应商管理人员&#xff0c;用于掌握过程审核的策划、实施与评价方法。资源为1个PDF文件&#xff0c;压缩包约1.28MB&#xff0c;内容以扫描…

2026/10/19 21:31:33 阅读更多 →
开放式代码评审实战:从流程设计到落地避坑

开放式代码评审实战:从流程设计到落地避坑

这两年我参与评审过的合并请求加起来得有上千个了&#xff0c;从几个人小团队到几十人的研发部门都待过。要说哪种评审方式对代码质量提升最明显&#xff0c;我个人的答案始终是&#xff1a;开放式评审&#xff0c;也就是大家常说的 open code review。不是那种在工位上喊一嗓子…

2026/10/19 21:30:32 阅读更多 →
SAP WM配置本质:控制参数与存储结构的内核级耦合解析

SAP WM配置本质:控制参数与存储结构的内核级耦合解析

简介&#xff1a;本资源是一份面向SAP实施顾问、WM模块初/中级配置人员及企业仓储数字化转型从业者的SAP WM&#xff08;仓库管理&#xff09;模块系统化配置指南。文档深度覆盖WM与MM集成场景下的核心配置逻辑&#xff0c;从基础主数据&#xff08;仓库编号控制参数、存储类型…

2026/10/19 21:30:32 阅读更多 →

最新新闻

具身智能认知架构:从脑到本体的神经符号融合与工程落地

具身智能认知架构:从脑到本体的神经符号融合与工程落地

1. 具身智能认知架构到底在解决什么问题1.1 从一个尴尬的现状说起做了几年机器人相关项目的人大概都有这种体会&#xff1a;机械臂在结构化环境里跑得挺稳&#xff0c;抓取、码垛、拧螺丝这些任务&#xff0c;只要场景不变、光照不变、物体位置固定&#xff0c;成功率能到99%以…

2026/10/19 22:24:16 阅读更多 →
5个AI工具让创业者效率翻倍:会议纪要、内容生成、数据解读、客户跟进、流程自动化

5个AI工具让创业者效率翻倍:会议纪要、内容生成、数据解读、客户跟进、流程自动化

如果只给自己留一个判断标准来选AI工具&#xff0c;我会选这一个&#xff1a;它能不能把一个星期里重复十几次的机械动作&#xff0c;压缩成一次性的规则和提示词。创业者最值钱的不是执行力&#xff0c;而是判断力和决策质量&#xff0c;但现实是&#xff0c;大部分人的精力都…

2026/10/19 22:23:15 阅读更多 →
Atlas数据库迁移实战:声明式与版本化工作流解析

Atlas数据库迁移实战:声明式与版本化工作流解析

1. Atlas是什么&#xff1a;一个让数据库变更不再“失控”的迁移工具1.1 先说我遇到的一个真实迁移事故如果你维护过几年数据库&#xff0c;大概率见过这种场景&#xff1a;测试环境和生产环境的表结构悄悄对不上了&#xff0c;问了一圈没人知道谁动过&#xff0c;git记录里也查…

2026/10/19 22:23:15 阅读更多 →
AI写作工具合规使用指南:提升效率与规避学术不端风险

AI写作工具合规使用指南:提升效率与规避学术不端风险

抱歉&#xff0c;这个任务我没法执行。你提供的标题涉及一类明确有合规风险的工具——“降AIGC工具”&#xff0c;加上“导师推荐”“千笔AI VS Checkjie”“本科生专属”等表述&#xff0c;语义上指向帮助学生规避抄袭检测或AI检测的灰色服务。这类内容属于学术不端范畴&#…

2026/10/19 22:21:05 阅读更多 →
嵌入式Linux摄像头应用实战:i.MX6ULL+OV5640+V4L2+QT

嵌入式Linux摄像头应用实战:i.MX6ULL+OV5640+V4L2+QT

做嵌入式Linux下的摄像头应用&#xff0c;我踩过的坑多数不在应用层。刚开始拿一块基于i.MX6ULL的板子&#xff0c;接上OV5640摄像头模组&#xff0c;想着跑一个QT相机界面&#xff0c;以为难点在UI布局&#xff0c;结果光是让画面稳定流畅地出现在屏幕上&#xff0c;就把从驱动…

2026/10/19 22:16:59 阅读更多 →
从控件到像素:移动端AI Agent操作真机的三大考点

从控件到像素:移动端AI Agent操作真机的三大考点

最近很多团队开始做一件事&#xff1a;把 AI Agent 接到一台真实的手机上&#xff0c;让它像人一样打开 App、点按钮、填信息、下单、发消息。不是模拟器&#xff0c;不是纯接口调用&#xff0c;是实实在在握住一台手机操作。这件事在近两年突然火起来&#xff0c;原因很直接—…

2026/10/19 22:16:59 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介&#xff1a;本资源为电源技术方向的学术研究文档&#xff0c;聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略&#xff0c;面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集&#xff0c;共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →