Posted on Nov 15
发布态与草稿态:一篇文章的两种URL
在内容平台的工程实现中,草稿态与发布态的文章需要两套不同的 URL 机制,这背后体现了状态隔离的设计智慧。
草稿使用临时 slug(如 temp-slug-12345),这是一种纯内部标识符,仅在编辑会话期间有效。临时 slug 的好处是防止未完成的草稿被外部索引,避免搜索引擎抓取到半成品内容。同时,临时 slug 可以频繁变更,不影响任何外部链接——因为此时根本不存在外部链接。
一旦点击发布,系统会为文章分配永久性短 hash(如 a1b2c3d)。这个 hash 成为全球可访问的 URL 一部分,必须保证长期稳定。短 hash 相比自增 ID 更不易被遍历爬取,也比长 slug 更适合在社交媒体分享。
区分这两种状态本质上是生命周期管理的问题。草稿是瞬态的、可变的;发布后则是静态的、不可变的资源。系统通过 URL 层面的差异,自然形成了访问控制的边界:草稿仅作者可见,发布后对全网开放。这种设计让平台能灵活处理内容迭代,同时保证已发布内容的永久可访问性。