Summary
- Berners-Lee 的原文《Cool URIs don't change》逐一拆解网站迁移造成断链的理由:服务器完全可以把不变的公共 URI 映射到新文件或新程序。W3C 的命名史将这篇风格指南文章列在 1998 年 12 月。
- 员工姓名、
cgi-bin、文件扩展名、草稿状态、访问层级和栏目名称都会变。把这些眼前方便的东西写进长期地址,等于让每次内部调整都向外部链接收费。
门牌不是文件夹名称
网站管理员最常说的理由很体面:我们重新整理网站,是为了让它更好用。目录确实可以重排,页面确实可能交给另一位编辑,旧程序也确实会被淘汰。问题出在最后一步:为什么内部搬迁非要改动公共地址?Berners-Lee 在 1998 年的文章里指出,服务器可以把一个 URI 与实际文件分开管理。文件移到哪里、换成什么程序生成,由服务器负责转接。读者已经认识的入口可以留在原地。
这等于区分两张地图。一张挂在街上:外部网页引用的 URI、读者保存的书签、写在纸上的链接。另一张放在办公室:磁盘目录、软件部署、人员分工和权限表。第二张地图每天都可能改变。第一张地图若跟着每次重画,所有曾经指路的人就得重新上门核对。网站管理员能看见自己动了哪一格柜子;外部引用者往往要等点击失败才知道柜子换了位置。
原文列出了一串熟悉的借口:网站重新设计;旧材料太多,不知道哪些还有效;文件必须移动;John 不再负责,改由 Jane 接手;生成页面的 CGI 脚本换成了别的程序。这些变化都发生在机构内部。服务器映射、内容登记和维护工具本应吸收它们。把文件系统的路径直接当作对外的 URI,只是让组织省了一个映射层,再让别人为这个省略买单。
Berners-Lee 还看了美国国家科学基金会当时的在线文件。有的地址露出 cgi-bin、Perl 脚本和取件查询;另一个地址包含 pubs/1998 与文件编号。他认为后者更可能经得起时间,因为发表年份和文件身份不会随着脚本替换而消失。这是 1998 年对地址设计的比较,不需要把任何一条旧 URL 的今日存活情况当作证据。论点藏在字面上:会过时的软件名称一旦成为门牌,软件升级就会变成全民搬家。
人员、栏目和权限都在动
路径中的姓名也会报废。某人写了页面,几年后同事接手,文件仍值得保留,名字却再也不能准确说明责任。draft 或 old 一类状态词会因出版流程而过期;把“内部”“会员”“公开”写进地址,权限变化时又要换门牌。文件后缀把今天的格式钉在公共名称上,哪天换成另一种格式便显得别扭。单设一个反映服务器职能的子域名,也可能把临时的机房分工变成永久承诺。
这不是反对给文件起好名字,而是要求发布者想清楚名字承诺什么。文件创建于某年,创建年份不会因改版而变;用日期做档案路径可以有道理。一个专门表示“最新一期”的 URI,指向不断更新的期刊封面也有道理。前者指一件有固定身份的东西,后者指一个持续变化的角色。两者可以并存,但不能让服务器今天的目录结构替它们做决定。
按主题分栏更有诱惑。编辑要让站点易逛,就会给内容分组;部门也要给各自负责的目录划地盘。可是学科边界和组织词汇都会移动。Berners-Lee 举了 W3C 自己的例子,相关目录名称从“MarkUp”向“HTML”改变。若旧 URI 绑定了旧分类,机构要么继续养一个看起来不合时宜的路径,要么切断过去的引文。分类树是当下工作的工具,公共地址则会进入别人的记录。
换个更庄严的名字也得有人看门
当时有人相信 Uniform Resource Names,即 URN,会解决持久标识问题,于是普通 URL 断了似乎也无妨。Berners-Lee 不买账。能长期维护 URN 的机构,同样可以维护 HTTP URI;两者都需要有人持有名称空间、记录标识与当前文件的对应关系,并让服务器继续应答。“名字”听起来比“位置”稳固,却不会自动雇来档案员。
文章并未假装这件事毫不费力。常见的发布工具没有现成地把固定 URI、当前文件、各版本、各语种和校验信息放在一个可靠目录里。W3C 自己有些页面也没有做到理想状态。Berners-Lee 要求工具进步,正是因为长期链接需要一套日常操作:换人、改权限、换存储,都不能靠重新发一个地址来解决。
W3C 2004 年的 Web 架构建议书把责任说得更正式:URI 能否持续,取决于所有者的政策和承诺;选用哪种 URI 方案本身不给保证。稳定而可预期的内容呈现,以及确有迁移时的 HTTP 重定向,都能支撑这个承诺。技术有工具,决定仍在发布者手里。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限战略圈层会员
战略圈层
所有读者均可浏览。加入并登录后可解锁档案简报。
加入战略圈层仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





