<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>【专题】短链接服务（Birdor）— 从商业构想到技术落地的完整知识体系 on PlumePHP</title><link>https://plumephp.com/posts/saas/shortlink/</link><description>Recent content in 【专题】短链接服务（Birdor）— 从商业构想到技术落地的完整知识体系 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 06 Aug 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/posts/saas/shortlink/index.xml" rel="self" type="application/rss+xml"/><item><title>短链 vs 长链：什么时候该缩短，什么时候该保留原样</title><link>https://plumephp.com/shortlink35-vs-long-url/</link><pubDate>Thu, 06 Aug 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink35-vs-long-url/</guid><description>从可读性、信任度、SEO、平台限制等8个维度全面对比短链与长链，附使用决策树助你做出正确选择。</description></item><item><title>开源自托管短链方案：Shlink、YOURLS、Polr、Supabase 四方案选型指南</title><link>https://plumephp.com/shortlink36-self-hosted/</link><pubDate>Thu, 06 Aug 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink36-self-hosted/</guid><description>Shlink、YOURLS、Polr、Supabase+自研四种自托管短链方案横向对比，含Docker一键部署、数据迁移、成本分析。</description></item><item><title>短链失效处理与过期策略：软删除、续期、归档与回收完整方案</title><link>https://plumephp.com/shortlink37-expiration-recovery/</link><pubDate>Thu, 06 Aug 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink37-expiration-recovery/</guid><description>短链失效问题深度解析：软删除机制、过期续期策略、归档方案、用户通知与短码回收的完整工程实践，附Go实现代码。</description></item><item><title>API优先的短链服务设计：RESTful规范、多语言SDK、Webhook与开发者体验</title><link>https://plumephp.com/shortlink38-api-first/</link><pubDate>Thu, 06 Aug 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink38-api-first/</guid><description>API优先的短链服务设计完整指南：RESTful API规范、多语言SDK架构、Webhook事件体系、GraphQL扩展、速率限制策略，以及打造顶级开发者体验(DX)的实战经验。</description></item><item><title>短链接对 SEO 的影响与优化最佳实践</title><link>https://plumephp.com/shortlink22-seo/</link><pubDate>Thu, 06 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink22-seo/</guid><description>深度解析短链接对 SEO 的影响，覆盖 HTTP 重定向状态码对 PageRank 的传递差异、品牌短链与公共短链的 SEO 对比、Google 索引机制与实战优化建议，帮助 SEO 从业者和营销人员正确使用短链接。</description></item><item><title>UTM 参数 + 短链接：追踪每一条营销链路</title><link>https://plumephp.com/shortlink25-utm/</link><pubDate>Thu, 06 Aug 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink25-utm/</guid><description>本文系统讲解 UTM 参数的定义、5 个核心字段详解、命名规范，以及 UTM 与短链接结合的最佳实践。涵盖主流 UTM builder 工具对比、数据分析方法、常见错误规避和高级玩法，帮你建立一套完整的营销追踪工作流。</description></item><item><title>2025 年短链接工具对比：Bit.ly vs TinyURL vs Rebrandly vs 国产方案</title><link>https://plumephp.com/shortlink23-comparison/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink23-comparison/</guid><description>面向个人博主、电商、企业和开发者的 2025 年最佳短链工具全面对比。深度评测 Bit.ly、TinyURL、Rebrandly、Short.io、百度短链、新浪短链等 7 款主流短链接平台，涵盖价格、自定义域名、数据分析、API、安全性、&amp;hellip;</description></item><item><title>AI智能短链接跳转系统：个性化路由、意图识别与实时优化</title><link>https://plumephp.com/shortlink31-ai-redirect/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink31-ai-redirect/</guid><description>AI驱动的智能短链接跳转系统深度解析。涵盖用户意图识别、个性化落地页推荐、动态A/B测试引擎、 实时转化率优化，以及可落地的规则引擎与ML模型架构。</description></item><item><title>Base62 短码生成算法：原理、冲突处理与性能调优</title><link>https://plumephp.com/shortlink26-base62/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink26-base62/</guid><description>深入解析 Base62 短码生成算法的数学原理，涵盖进制选择依据、编码/解码核心实现、冲突处理策略、性能调优技巧， 以及适用于高并发场景的 Go 语言可运行代码。</description></item><item><title>二维码与短链接整合实战：从生成到扫描的数据追踪链路</title><link>https://plumephp.com/shortlink29-qr-code/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink29-qr-code/</guid><description>二维码与短链接整合的完整技术方案。涵盖动态二维码生成、扫描数据追踪、移动端深度链接、 私域引流闭环设计，以及可落地的生成器代码实现。</description></item><item><title>千万 QPS 短链接服务架构设计：高并发下的读写分离与缓存策略</title><link>https://plumephp.com/shortlink27-architecture/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink27-architecture/</guid><description>短链接服务的高并发架构设计指南。涵盖读写 QPS 差距分析、多级缓存策略、数据库分片、 读写分离、CDN 加速、热点短链探测与削峰填谷等核心技术方案。</description></item><item><title>如何从零构建 URL 短链接系统：完整技术指南</title><link>https://plumephp.com/shortlink21-build-guide/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink21-build-guide/</guid><description>从零构建 URL 短链接系统的完整技术指南。 涵盖 Base62 编码数学推导、发号器方案对比、数据库与缓存设计、高并发读写优化、安全防护策略， 以及可运行的 Go 语言最小实现（Redis + MySQL）。</description></item><item><title>布隆过滤器在短链系统中的实战应用：空间与误判的精确权衡</title><link>https://plumephp.com/shortlink28-bloom-filter/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink28-bloom-filter/</guid><description>布隆过滤器在短链接系统中的深度实战。涵盖算法原理、参数调优公式、Redis 模块实现、 去重与防穿透场景、误判率控制策略，以及可落地的 Go 代码示例。</description></item><item><title>短链接安全防线：防刷、防劫持、防钓鱼与风控体系</title><link>https://plumephp.com/shortlink30-security/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink30-security/</guid><description>短链接服务的安全架构全面指南。涵盖恶意链接检测、访问限流、反钓鱼策略、重定向安全、 数据隐私保护，以及企业级风控体系的设计与实现。</description></item><item><title>短链接服务与MarTech生态集成：CRM、CDP、广告归因与营销自动化</title><link>https://plumephp.com/shortlink34-martech/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink34-martech/</guid><description>短链接服务与MarTech生态的深度集成方案。涵盖CRM/CDP对接、广告平台归因、营销自动化工作流、 数据回流闭环，以及UTM智能生成与跨平台用户画像打通。</description></item><item><title>短链接服务盈利模型深度拆解：从订阅到增值的六大收入来源</title><link>https://plumephp.com/shortlink33-monetization/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink33-monetization/</guid><description>短链接服务盈利模式的全面拆解。涵盖订阅分层、API计费、企业定制、流量变现、联盟佣金、 数据增值六大收入来源，以及LTV/CAC模型、定价策略与ARPU优化方法论。</description></item><item><title>短链接白标平台构建方案：多租户、自定义域名与品牌化输出</title><link>https://plumephp.com/shortlink32-white-label/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink32-white-label/</guid><description>短链接白标平台（White Label URL Shortener）完整构建方案。涵盖多租户架构设计、自定义域名接入、 品牌定制体系、API/SDK 对外输出，以及企业级安全与隔离策略。</description></item><item><title>私域流量运营中的短链接策略：从引流到转化</title><link>https://plumephp.com/shortlink24-private-domain/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/shortlink24-private-domain/</guid><description>深度解析短链接在微信、抖音、小红书等私域运营场景中的实战策略，涵盖渠道追踪、裂变增长、防封域名、活码技术、转化漏斗优化等核心方法论，帮助 SaaS 企业和品牌商家从引流到转化构建完整的私域增长闭环。</description></item><item><title>「短网址服务」的商业前景展望</title><link>https://plumephp.com/shortlink19-future/</link><pubDate>Thu, 25 Sep 2025 16:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink19-future/</guid><description>&lt;h2 id="一市场趋势"&gt;一、市场趋势&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;全球互联网流量持续增长&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全球网民超过 &lt;strong&gt;50 亿&lt;/strong&gt;，每天产生数百亿条链接。&lt;/li&gt;
&lt;li&gt;链接的分享、追踪和优化成为数字营销与传播的基础设施。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;营销数字化 &amp;amp; 精细化运营&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」的商业拓展计划</title><link>https://plumephp.com/shortlink18-flywheel/</link><pubDate>Thu, 25 Sep 2025 15:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink18-flywheel/</guid><description>&lt;h2 id="一阶段性目标"&gt;一、阶段性目标&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;0–6 个月（启动期 / MVP 验证）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;上线基础功能：短链生成、跳转、基础统计、二维码。&lt;/li&gt;
&lt;li&gt;获取首批用户（目标：1 万+ 注册用户）。&lt;/li&gt;
&lt;li&gt;打造「轻快、无广告、专业」的口碑，和现有国内工具区隔。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;6–12 个月（市场启动 / 用户增长）&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」的商业模式画布</title><link>https://plumephp.com/shortlink17-bmc/</link><pubDate>Thu, 25 Sep 2025 14:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink17-bmc/</guid><description>&lt;h2 id="1-客户细分customer-segments"&gt;1. 客户细分（Customer Segments）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;个人用户&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自媒体、博主、营销人员&lt;/li&gt;
&lt;li&gt;需求：简洁短链 + 基础统计&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;中小企业&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;电商、教育、游戏、活动主办方&lt;/li&gt;
&lt;li&gt;需求：品牌域名、数据统计、二维码&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;大型企业/机构&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」的商业模式</title><link>https://plumephp.com/shortlink16-business-model/</link><pubDate>Thu, 25 Sep 2025 13:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink16-business-model/</guid><description>&lt;h2 id="一核心商业模式"&gt;一、核心商业模式&lt;/h2&gt;
&lt;p&gt;短网址本质上是一个「流量中转基础设施」，其商业价值来自 &lt;strong&gt;流量入口控制 + 数据洞察 + 企业服务扩展&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;用户价值&lt;/strong&gt;：简化分享、增强品牌一致性、获取数据反馈。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;企业价值&lt;/strong&gt;：追踪转化、优化广告 ROI、保障合规安全。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;我们的定位&lt;/strong&gt;：不仅是「短链工具」，而是「链接智能化管理 SaaS 平台」。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="二收入来源revenue-streams"&gt;二、收入来源（Revenue Streams）&lt;/h2&gt;
&lt;h3 id="1-订阅制-saas-收入核心"&gt;1. &lt;strong&gt;订阅制 SaaS 收入（核心）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;个人用户（Freemium 模式）&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」的创新与独特功能扩展</title><link>https://plumephp.com/shortlink15-todo/</link><pubDate>Thu, 25 Sep 2025 12:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink15-todo/</guid><description>&lt;h2 id="1-智能跳转smart-redirects"&gt;1. &lt;strong&gt;智能跳转（Smart Redirects）&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;时间维度&lt;/strong&gt;：同一个短链在不同时间段跳转到不同页面。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;例：活动前 → 预热页，活动中 → 促销页，活动后 → 总结页。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;地域维度&lt;/strong&gt;：根据访问者所在国家/地区跳转到本地化页面。&lt;/p&gt;</description></item><item><title>「短网址服务」官网</title><link>https://plumephp.com/shortlink14-site/</link><pubDate>Thu, 25 Sep 2025 11:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink14-site/</guid><description>&lt;h2 id="1-hero-banner首屏"&gt;1. Hero Banner（首屏）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;主标题（H1）：&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;让链接飞翔&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;副标题（H2）：&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Birdor – 轻快、可靠、智能的短网址与二维码服务&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;核心卖点（3 个简短点）：&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」品牌故事</title><link>https://plumephp.com/shortlink13-brand/</link><pubDate>Thu, 25 Sep 2025 10:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink13-brand/</guid><description>&lt;h2 id="起源"&gt;起源&lt;/h2&gt;
&lt;p&gt;在信息爆炸的时代，每天都有无数的链接被分享、点击、转发。&lt;br&gt;
但我们发现，大多数链接——冗长、复杂、不便于传播，也缺乏对数据的追踪能力。&lt;/p&gt;
&lt;p&gt;我们希望创造一个&lt;strong&gt;像小鸟一样轻盈快速的传递工具&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>「短网址服务」短网址服务功能进阶路线图</title><link>https://plumephp.com/shortlink12-roadmap-01/</link><pubDate>Thu, 25 Sep 2025 09:29:36 +0800</pubDate><guid>https://plumephp.com/shortlink12-roadmap-01/</guid><description>&lt;h2 id="阶段一mvp06-个月"&gt;阶段一：MVP（0–6 个月）&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：验证市场需求，快速上线基础功能&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;核心功能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;短链生成 &amp;amp; 跳转&lt;/li&gt;
&lt;li&gt;基础访问统计（PV/UV）&lt;/li&gt;
&lt;li&gt;短链历史管理&lt;/li&gt;
&lt;li&gt;短链二维码生成&lt;/li&gt;
&lt;li&gt;用户注册/登录 + 简单 Dashboard&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;技术架构：单体服务 + MySQL + Redis 缓存&lt;/p&gt;</description></item><item><title>「短网址服务」架构演进路线图</title><link>https://plumephp.com/shortlink12-roadmap-00/</link><pubDate>Thu, 25 Sep 2025 09:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink12-roadmap-00/</guid><description>&lt;h2 id="阶段一mvp0-6个月"&gt;阶段一：MVP（0-6个月）&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：快速上线，验证产品价值与核心功能。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;功能目标&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;短链生成/跳转&lt;/li&gt;
&lt;li&gt;Dashboard 管理&lt;/li&gt;
&lt;li&gt;API Key 管理&lt;/li&gt;
&lt;li&gt;基础统计（PV/UV，按日）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;技术实现&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单节点应用服务&lt;/li&gt;
&lt;li&gt;MySQL 单实例 + Redis 单实例&lt;/li&gt;
&lt;li&gt;日志直接写 DB，统计延迟较高&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;监控运维&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>「短网址服务」运维监控指标清单</title><link>https://plumephp.com/shortlink11-monitor/</link><pubDate>Wed, 24 Sep 2025 18:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink11-monitor/</guid><description>&lt;h2 id="1-应用层监控"&gt;1. 应用层监控&lt;/h2&gt;
&lt;h3 id="11-短链跳转"&gt;1.1 短链跳转&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;跳转 QPS&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指标：每秒短链访问次数&lt;/li&gt;
&lt;li&gt;目标：单节点 ≥ 5k QPS&lt;/li&gt;
&lt;li&gt;告警：超过 80% 峰值 → 告警&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;跳转延迟（RT）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;P50、P95、P99 响应时间&lt;/li&gt;
&lt;li&gt;目标：P95 ≤ 100ms&lt;/li&gt;
&lt;li&gt;告警：P95 &amp;gt; 200ms&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-短链生成"&gt;1.2 短链生成&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;生成 API QPS&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」架构部署图</title><link>https://plumephp.com/shortlink10-deploy/</link><pubDate>Wed, 24 Sep 2025 17:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink10-deploy/</guid><description>&lt;h1 id="短网址服务架构部署图示意"&gt;短网址服务架构部署图（示意）&lt;/h1&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart TD

subgraph Client [&amp;#34;客户端/前端&amp;#34;]
 Web[&amp;#34;Web 页面&amp;lt;br/&amp;gt;首页/登录/Dashboard&amp;#34;]
 Mobile[&amp;#34;移动端浏览器&amp;#34;]
 Dev[&amp;#34;开发者（API Key调用）&amp;#34;]
end

subgraph Edge [&amp;#34;CDN / 反向代理&amp;#34;]
 CDN[&amp;#34;CDN/负载均衡&amp;#34;]
 WAF[&amp;#34;WAF / 防火墙&amp;#34;]
end

subgraph App [&amp;#34;应用层&amp;#34;]
 API[&amp;#34;API Gateway / Nginx-Ingress&amp;#34;]
 Svc[&amp;#34;短网址服务&amp;lt;br/&amp;gt;Go · Java · Python&amp;#34;]
 Auth[&amp;#34;认证服务&amp;lt;br/&amp;gt;JWT/OAuth&amp;#34;]
end

subgraph CacheDB [&amp;#34;存储层&amp;#34;]
 Redis[&amp;#34;(Redis缓存&amp;lt;br/&amp;gt;短链→长链映射)&amp;#34;]
 DB[&amp;#34;(MySQL / PostgreSQL&amp;lt;br/&amp;gt;短链 &amp;amp; 用户 &amp;amp; Key)&amp;#34;]
end

subgraph Stats [&amp;#34;统计与日志&amp;#34;]
 MQ[&amp;#34;(Kafka / RabbitMQ)&amp;#34;]
 ETL[&amp;#34;统计消费服务&amp;lt;br/&amp;gt;PV/UV聚合&amp;#34;]
 Store[&amp;#34;(Click Logs DB / ES)&amp;#34;]
end

subgraph Monitoring [&amp;#34;监控与运维&amp;#34;]
 Prom[&amp;#34;Prometheus&amp;lt;br/&amp;gt;监控采集&amp;#34;]
 Grafana[&amp;#34;Grafana&amp;lt;br/&amp;gt;监控面板&amp;#34;]
 Alert[&amp;#34;Alertmanager&amp;lt;br/&amp;gt;报警&amp;#34;]
 Log[&amp;#34;ELK / Loki&amp;lt;br/&amp;gt;日志中心&amp;#34;]
end

Client --&amp;gt;|HTTP/HTTPS| CDN
CDN --&amp;gt; WAF
WAF --&amp;gt; API
API --&amp;gt; Svc
Svc --&amp;gt; Auth
Svc --&amp;gt; Redis
Svc --&amp;gt; DB
Svc --&amp;gt; MQ
MQ --&amp;gt; ETL --&amp;gt; Store

Prom --&amp;gt; Grafana
Grafana --&amp;gt; Alert
Svc --&amp;gt; Log
DB --&amp;gt; Log
Redis --&amp;gt; Log
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1 id="架构说明"&gt;架构说明&lt;/h1&gt;
&lt;h2 id="1-客户端层"&gt;1. 客户端层&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web 页面&lt;/strong&gt;：首页（生成短链）、Dashboard（管理/统计）、API 文档页。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;移动端&lt;/strong&gt;：浏览器访问，适配卡片式展示。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开发者&lt;/strong&gt;：通过 API Key 调用接口生成短链。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-接入层"&gt;2. 接入层&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CDN/负载均衡&lt;/strong&gt;：加速访问、分发请求，缓解主服务压力。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WAF&lt;/strong&gt;：拦截 SQL 注入/XSS/恶意请求。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Gateway&lt;/strong&gt;：统一路由，转发到应用服务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-应用层"&gt;3. 应用层&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;短网址服务（Svc）&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」上线前检查清单</title><link>https://plumephp.com/shortlink09-checklist/</link><pubDate>Wed, 24 Sep 2025 15:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink09-checklist/</guid><description>&lt;h2 id="1-功能检查"&gt;1. 功能检查&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 首页可以成功生成短链（包含普通 URL、自定义短码、设置过期时间）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 短链跳转正常（存在短链 → 正常跳转；不存在/过期 → 错误页提示）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 登录/注册流程可用（注册 → 自动登录 → Dashboard）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Dashboard 短链管理列表正常（分页、搜索、修改、删除）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Dashboard 数据统计展示正确（趋势图、饼图、地图）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; API Key 管理可用（新建/删除，调用 API 成功）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 自定义域名绑定校验流程正确。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 错误码返回符合规范（code + message）。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-性能检查"&gt;2. 性能检查&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 单节点短链跳转 QPS ≥ 5k，P95 延迟 ≤ 100ms。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 短链生成接口 QPS ≥ 500，平均延迟 ≤ 200ms。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 数据库写入压力测试 ≥ 10w 条/天，查询延迟 ≤ 500ms。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 统计聚合延迟 ≤ 5s，误差率 ≤ 1%。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; API 限流策略生效，超限返回 &lt;code&gt;130003&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 压测 24 小时运行，CPU ≤ 70%，内存无明显泄漏。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="3-安全检查"&gt;3. 安全检查&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 所有输入字段已做合法性校验，防止 SQL 注入 / XSS。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 黑名单域名检测生效，恶意 URL 不可生成短链。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 短链跳转强制 HTTPS（HSTS 生效）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 密码加密存储（BCrypt/Argon2），禁止明文。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; API Key 列表展示打码，返回日志中不包含完整 Token/密码。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; API Key 权限隔离，删除/过期后不可继续调用。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; CORS 配置合理，仅允许白名单域名访问。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; CSRF 防护生效（Token 或 SameSite Cookie）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 登录失败/异常调用有日志记录，可用于审计。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-运维与监控"&gt;4. 运维与监控&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 服务支持 &lt;strong&gt;健康检查接口&lt;/strong&gt;（&lt;code&gt;/health&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 部署支持 &lt;strong&gt;蓝绿/灰度发布&lt;/strong&gt;，可快速回滚。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 接入监控：QPS、延迟、错误率、缓存命中率。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 接入日志：访问日志、错误日志，集中收集（ELK / Loki）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 短链点击量、API 调用量设置 &lt;strong&gt;告警阈值&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 数据库备份策略就绪（每日/每周全量 + 增量）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Redis 缓存过期策略确认，保证一致性。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; SSL 证书部署并校验，过期前有续期提醒。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="5-前端体验"&gt;5. 前端体验&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 短链复制功能在主流浏览器/移动端可用。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 二维码展示与下载正常。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 移动端适配检查（表格 → 卡片式展示，按钮宽度 100%）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 多语言支持校验（错误提示/提示文案）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 错误/异常页面友好提示，提供「返回首页」按钮。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="6-文档与交付"&gt;6. 文档与交付&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; API 文档完整（Swagger / OpenAPI 导出）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 错误码文档对齐（错误码 ↔ 前端提示）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 运维文档更新（部署方式、回滚方案、监控指标）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 测试用例执行完毕（功能、性能、安全覆盖）。&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 产品说明文档归档（供运营/客服使用）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="上线流程建议"&gt;上线流程建议&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预发布环境&lt;/strong&gt;：全量功能测试 + 压测。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;灰度发布&lt;/strong&gt;：部分用户访问新版本，监控 QPS/延迟/错误率。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全量发布&lt;/strong&gt;：完成流量切换，旧版本下线。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;回滚预案&lt;/strong&gt;：遇到大规模错误/性能问题时，立即回滚到上一版本。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;📌 这样一份 &lt;strong&gt;Go-Live Checklist&lt;/strong&gt; 可以作为「发版前最后一道关口」，保证功能、性能、安全、运维都不掉链子。&lt;/p&gt;</description></item><item><title>「短网址服务」安全测试清单</title><link>https://plumephp.com/shortlink08-security/</link><pubDate>Wed, 24 Sep 2025 14:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink08-security/</guid><description>&lt;h2 id="1-输入校验与防注入"&gt;1. 输入校验与防注入&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SQL 注入&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在生成短链 API 中输入恶意 URL：&lt;code&gt;https://abc.com' OR '1'='1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在搜索接口传入注入语句：&lt;code&gt;s.io/abc123' UNION SELECT ...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;预期：系统返回参数错误（100001），无数据泄露。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;XSS 攻击&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」性能测试点清单</title><link>https://plumephp.com/shortlink07-benchmark/</link><pubDate>Wed, 24 Sep 2025 13:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink07-benchmark/</guid><description>&lt;h2 id="1-短链跳转性能"&gt;1. 短链跳转性能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：跳转延迟 ≤ 50ms（内网环境），单节点 QPS ≥ 5k。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;测试点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单用户访问短链 → 响应时间统计（首字节、总耗时）。&lt;/li&gt;
&lt;li&gt;并发 100/1000/5000 用户同时访问同一短链。&lt;/li&gt;
&lt;li&gt;并发 100/1000/5000 用户同时访问不同短链（随机）。&lt;/li&gt;
&lt;li&gt;Redis 缓存命中时延迟统计 vs 未命中时延迟统计。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;预期结果&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>「短网址服务」测试用例大纲</title><link>https://plumephp.com/shortlink06-test/</link><pubDate>Wed, 24 Sep 2025 12:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink06-test/</guid><description>&lt;h2 id="1-首页短链生成页"&gt;1. 首页（短链生成页）&lt;/h2&gt;
&lt;h3 id="11-正常场景"&gt;1.1 正常场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;输入合法 URL，点击生成 → 返回短链 &amp;amp; 二维码。&lt;/li&gt;
&lt;li&gt;输入合法 URL + 自定义短码 → 返回短链（短码为用户指定值）。&lt;/li&gt;
&lt;li&gt;输入合法 URL + 设置过期时间 → 返回带过期信息的短链。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-异常场景"&gt;1.2 异常场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;输入空链接 → 提示「请输入有效链接」。&lt;/li&gt;
&lt;li&gt;输入非 http/https 链接 → 提示「请输入有效链接」。&lt;/li&gt;
&lt;li&gt;输入超长链接（&amp;gt;2048） → 提示「链接过长」。&lt;/li&gt;
&lt;li&gt;输入短码已存在 → 提示「短码已被使用」。&lt;/li&gt;
&lt;li&gt;输入黑名单域名 → 提示「该链接无法生成短网址」。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="13-边界场景"&gt;1.3 边界场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;多次点击「生成短链」 → 仅生成一次（按钮禁用 Loading）。&lt;/li&gt;
&lt;li&gt;游客用户生成短链 → 无历史记录。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-登录--注册"&gt;2. 登录 / 注册&lt;/h2&gt;
&lt;h3 id="21-正常场景"&gt;2.1 正常场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;注册：输入合法邮箱+密码 → 注册成功 → 自动登录跳转 Dashboard。&lt;/li&gt;
&lt;li&gt;登录：输入正确邮箱+密码 → 登录成功 → 跳转 Dashboard。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="22-异常场景"&gt;2.2 异常场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;注册时输入已注册邮箱 → 提示「邮箱已被注册」。&lt;/li&gt;
&lt;li&gt;注册时邮箱格式错误 → 提示「邮箱格式错误」。&lt;/li&gt;
&lt;li&gt;登录时输入错误邮箱/密码 → 提示「账号或密码错误」。&lt;/li&gt;
&lt;li&gt;登录时使用过期 Token → 提示「登录已过期，请重新登录」。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="23-边界场景"&gt;2.3 边界场景&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;密码和确认密码不一致 → 提示「两次密码不一致」。&lt;/li&gt;
&lt;li&gt;注册时未勾选服务协议 → 注册按钮禁用。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="3-dashboard"&gt;3. Dashboard&lt;/h2&gt;
&lt;h3 id="31-短链管理"&gt;3.1 短链管理&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;正常场景&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」低保真草图清单</title><link>https://plumephp.com/shortlink04-wireframe/</link><pubDate>Wed, 24 Sep 2025 11:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink04-wireframe/</guid><description>&lt;hr&gt;
&lt;h2 id="1-首页短链生成"&gt;1. 首页（短链生成）&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;布局要点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;顶部导航栏&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;左侧：LOGO / 产品名&lt;/li&gt;
&lt;li&gt;右侧：按钮 → 登录 / 注册 / Dashboard&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;主体区域&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[TextBox] 输入长链&lt;/li&gt;
&lt;li&gt;[TextBox] 自定义短码（可选）&lt;/li&gt;
&lt;li&gt;[Dropdown] 有效期（7天/30天/永久）&lt;/li&gt;
&lt;li&gt;[Button, Primary] 生成短链&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;结果展示区域（生成后显示）&lt;/p&gt;</description></item><item><title>「短网址服务」产品UI需求</title><link>https://plumephp.com/shortlink05-ui/</link><pubDate>Wed, 24 Sep 2025 10:28:36 +0800</pubDate><guid>https://plumephp.com/shortlink05-ui/</guid><description>&lt;h2 id="1-首页短链生成页"&gt;1. 首页（短链生成页）&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：让用户在最短路径内完成「输入长链 → 获取短链+二维码」&lt;/p&gt;
&lt;h3 id="模块与要点"&gt;模块与要点&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;输入区域&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;输入框：支持粘贴长链，自动去掉前后空格。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;占位符示例：&lt;code&gt;请输入或粘贴长链接&lt;/code&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」错误码规范</title><link>https://plumephp.com/shortlink03-code/</link><pubDate>Wed, 24 Sep 2025 10:27:37 +0800</pubDate><guid>https://plumephp.com/shortlink03-code/</guid><description>&lt;h1 id="短网址服务错误码规范整数版1011121314-前缀"&gt;短网址服务错误码规范（整数版，10/11/12/13/14 前缀）&lt;/h1&gt;
&lt;h2 id="1-错误码设计规则"&gt;1. 错误码设计规则&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;格式：&lt;code&gt;XXYYZZ&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;XX&lt;/code&gt;：模块前缀（两位整数）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;YY&lt;/code&gt;：子分类（可选）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ZZ&lt;/code&gt;：错误序号（递增）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-模块划分"&gt;2. 模块划分&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;10xxxx&lt;/strong&gt; → 通用错误（Common）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;11xxxx&lt;/strong&gt; → 用户与认证（Auth/User）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;12xxxx&lt;/strong&gt; → 短链服务（URL/Shorten）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;13xxxx&lt;/strong&gt; → API &amp;amp; Dashboard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;14xxxx&lt;/strong&gt; → 统计与报表（Stats/Report）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="3-错误码表"&gt;3. 错误码表&lt;/h2&gt;
&lt;h3 id="通用错误10xxxx"&gt;通用错误（10xxxx）&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;错误码&lt;/th&gt;
					&lt;th&gt;HTTP 状态&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;前端提示&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;100001&lt;/td&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;参数不合法&lt;/td&gt;
					&lt;td&gt;输入有误，请检查后重试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;100002&lt;/td&gt;
					&lt;td&gt;429&lt;/td&gt;
					&lt;td&gt;请求过于频繁&lt;/td&gt;
					&lt;td&gt;操作过于频繁，请稍后再试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;100003&lt;/td&gt;
					&lt;td&gt;500&lt;/td&gt;
					&lt;td&gt;系统内部错误&lt;/td&gt;
					&lt;td&gt;系统开小差了，请稍后再试&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id="用户与认证11xxxx"&gt;用户与认证（11xxxx）&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;错误码&lt;/th&gt;
					&lt;th&gt;HTTP 状态&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;前端提示&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;110001&lt;/td&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;邮箱格式不合法&lt;/td&gt;
					&lt;td&gt;邮箱格式错误，请重新输入&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;110002&lt;/td&gt;
					&lt;td&gt;409&lt;/td&gt;
					&lt;td&gt;邮箱已注册&lt;/td&gt;
					&lt;td&gt;该邮箱已被注册，请直接登录&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;110003&lt;/td&gt;
					&lt;td&gt;401&lt;/td&gt;
					&lt;td&gt;登录失败（账号/密码错误）&lt;/td&gt;
					&lt;td&gt;邮箱或密码不正确，请重试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;110004&lt;/td&gt;
					&lt;td&gt;401&lt;/td&gt;
					&lt;td&gt;Token 无效或过期&lt;/td&gt;
					&lt;td&gt;登录已过期，请重新登录&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;110005&lt;/td&gt;
					&lt;td&gt;403&lt;/td&gt;
					&lt;td&gt;权限不足&lt;/td&gt;
					&lt;td&gt;您没有权限执行此操作&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;110006&lt;/td&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;Refresh Token 无效&lt;/td&gt;
					&lt;td&gt;登录状态已失效，请重新登录&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="短链服务12xxxx"&gt;短链服务（12xxxx）&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;错误码&lt;/th&gt;
					&lt;th&gt;HTTP 状态&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;前端提示&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;120001&lt;/td&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;长链格式不合法&lt;/td&gt;
					&lt;td&gt;链接格式不正确，请输入有效网址&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;120002&lt;/td&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;长链过长&lt;/td&gt;
					&lt;td&gt;链接过长，请缩短后重试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;120003&lt;/td&gt;
					&lt;td&gt;403&lt;/td&gt;
					&lt;td&gt;URL 在黑名单中&lt;/td&gt;
					&lt;td&gt;该链接无法生成短网址&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;120004&lt;/td&gt;
					&lt;td&gt;409&lt;/td&gt;
					&lt;td&gt;自定义短码已存在&lt;/td&gt;
					&lt;td&gt;短码已被使用，请更换后重试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;120005&lt;/td&gt;
					&lt;td&gt;404&lt;/td&gt;
					&lt;td&gt;短链不存在&lt;/td&gt;
					&lt;td&gt;短链不存在或已被删除&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;120006&lt;/td&gt;
					&lt;td&gt;410&lt;/td&gt;
					&lt;td&gt;短链已过期&lt;/td&gt;
					&lt;td&gt;短链已过期，请重新生成&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;120007&lt;/td&gt;
					&lt;td&gt;500&lt;/td&gt;
					&lt;td&gt;短链生成失败&lt;/td&gt;
					&lt;td&gt;短链生成失败，请稍后再试&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="api--dashboard13xxxx"&gt;API &amp;amp; Dashboard（13xxxx）&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;错误码&lt;/th&gt;
					&lt;th&gt;HTTP 状态&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;前端提示&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;130001&lt;/td&gt;
					&lt;td&gt;401&lt;/td&gt;
					&lt;td&gt;API Key 无效&lt;/td&gt;
					&lt;td&gt;API Key 无效，请检查配置&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;130002&lt;/td&gt;
					&lt;td&gt;403&lt;/td&gt;
					&lt;td&gt;API Key 权限不足&lt;/td&gt;
					&lt;td&gt;API Key 权限不足，请联系管理员&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;130003&lt;/td&gt;
					&lt;td&gt;429&lt;/td&gt;
					&lt;td&gt;API 调用超限&lt;/td&gt;
					&lt;td&gt;API 调用次数超出限制，请稍后再试&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;130004&lt;/td&gt;
					&lt;td&gt;404&lt;/td&gt;
					&lt;td&gt;短链记录未找到&lt;/td&gt;
					&lt;td&gt;未找到相关短链记录&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;130005&lt;/td&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;参数错误（分页/筛选非法）&lt;/td&gt;
					&lt;td&gt;请求参数错误，请检查后重试&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="统计与报表14xxxx"&gt;统计与报表（14xxxx）&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;错误码&lt;/th&gt;
					&lt;th&gt;HTTP 状态&lt;/th&gt;
					&lt;th&gt;描述&lt;/th&gt;
					&lt;th&gt;前端提示&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;140001&lt;/td&gt;
					&lt;td&gt;404&lt;/td&gt;
					&lt;td&gt;没有找到统计数据&lt;/td&gt;
					&lt;td&gt;暂无统计数据&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;140002&lt;/td&gt;
					&lt;td&gt;400&lt;/td&gt;
					&lt;td&gt;时间区间不合法&lt;/td&gt;
					&lt;td&gt;时间范围选择有误&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;140003&lt;/td&gt;
					&lt;td&gt;500&lt;/td&gt;
					&lt;td&gt;聚合统计失败&lt;/td&gt;
					&lt;td&gt;数据统计失败，请稍后再试&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="4-返回示例"&gt;4. 返回示例&lt;/h2&gt;
&lt;h3 id="成功"&gt;成功&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;success&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;short_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://s.io/abc123&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="短码冲突120004"&gt;短码冲突（120004）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;120004&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Custom short code already exists&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="token-过期110004"&gt;Token 过期（110004）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;110004&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Token expired or invalid&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="api-超限130003"&gt;API 超限（130003）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;130003&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;API rate limit exceeded&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="接口与错误码映射表"&gt;接口与错误码映射表&lt;/h1&gt;
&lt;h2 id="1-用户认证模块"&gt;1. 用户认证模块&lt;/h2&gt;
&lt;h3 id="post-apiauthregister"&gt;&lt;code&gt;POST /api/auth/register&lt;/code&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;成功 → &lt;code&gt;code = 0&lt;/code&gt;&lt;/p&gt;</description></item><item><title>「短网址服务」功能设计</title><link>https://plumephp.com/shortlink02-fdd/</link><pubDate>Wed, 24 Sep 2025 10:27:36 +0800</pubDate><guid>https://plumephp.com/shortlink02-fdd/</guid><description>&lt;hr&gt;
&lt;h1 id="短网址服务功能设计文档fdd-v11"&gt;短网址服务功能设计文档（FDD v1.1）&lt;/h1&gt;
&lt;h2 id="1-概述"&gt;1. 概述&lt;/h2&gt;
&lt;p&gt;本文档基于&lt;a href="https://www.plumephp.com/shortlink01-prd"&gt;PRD 文档&lt;/a&gt;，对短网址服务的功能模块、交互逻辑、接口协议、数据结构进行细化，旨在保障开发、测试和产品的高效协作。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-系统模块划分"&gt;2. 系统模块划分&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;前端模块&lt;/strong&gt;：长链输入生成页面、用户登录注册、Dashboard（短链管理、统计分析、API Key 管理）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后端模块&lt;/strong&gt;：短链生成与跳转、API 服务、用户与权限管理、统计分析、风控与安全策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据存储&lt;/strong&gt;：MySQL（持久化）、Redis（缓存 + 计数器）、对象存储（二维码文件）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;运维支持&lt;/strong&gt;：Nginx/Gateway、Docker/K8s、监控告警。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-功能设计详细"&gt;3. 功能设计（详细）&lt;/h2&gt;
&lt;h3 id="31-短网址生成"&gt;3.1 短网址生成&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;功能点&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>「短网址服务」产品需求</title><link>https://plumephp.com/shortlink01-prd/</link><pubDate>Wed, 24 Sep 2025 10:27:35 +0800</pubDate><guid>https://plumephp.com/shortlink01-prd/</guid><description>&lt;h2 id="短网址服务系统"&gt;短网址服务系统&lt;/h2&gt;
&lt;hr&gt;
&lt;h2 id="1-文档信息"&gt;1. 文档信息&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;文档版本&lt;/strong&gt;：V1.0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;编写人&lt;/strong&gt;：xxx&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;评审人&lt;/strong&gt;：xxx&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;创建日期&lt;/strong&gt;：2025-09-24&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最后修改日期&lt;/strong&gt;：2025-09-25&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-背景与目标"&gt;2. 背景与目标&lt;/h2&gt;
&lt;h3 id="21-背景"&gt;2.1 背景&lt;/h3&gt;
&lt;p&gt;在社交媒体、电商推广、活动运营等场景中，长链接往往冗长、不便于传播，甚至在部分平台（如短信、微博、微信）中容易折行或被截断。短网址服务通过生成简洁的短链和二维码，提高了链接的分享体验，并能在此基础上提供统计、管理和 API 接入能力。&lt;/p&gt;</description></item><item><title>「短网址服务」商业计划书</title><link>https://plumephp.com/shortlink00-business-plan/</link><pubDate>Wed, 24 Sep 2025 09:27:35 +0800</pubDate><guid>https://plumephp.com/shortlink00-business-plan/</guid><description>&lt;h2 id="一执行摘要executive-summary"&gt;一、执行摘要（Executive Summary）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;项目概述&lt;/strong&gt;&lt;br&gt;
短网址服务是一款提供 &lt;strong&gt;长链接缩短、访问统计、二维码生成、用户管理&lt;/strong&gt; 的 SaaS 平台，支持 API 接入与可视化 Dashboard，满足个人用户、企业用户及营销平台的多样化需求。&lt;/p&gt;</description></item></channel></rss>