摘要
404只说明目标资源眼下没有可提供的表示,不交代会缺席多久;410 Gone进一步表明源站认为这种缺席很可能持续下去。- 1997 和 1999 年的 HTTP/1.1 规范还设想:能编辑链接的客户端,在用户同意后删除指向旧地址的引用。后来的规范保留停用通知的用途,把具体操作留给收信人。
一条死链接,可能只是网页临时出门,也可能是房主搬走了。访客站在门口,第一眼看不出区别。HTTP 早早给这两种场面准备了不同口气:404耸耸肩,410留下纸条,说这个地址往后大概也没人开门。更有意思的是,这张纸条原本还想送到写链接的人手里。
1996 年 5 月的 HTTP/1.0 规范 RFC 1945列出404 Not Found,明确不说明这种状态是暂时还是永久。其状态码表里没有410。读者看到网页找不到,只能知道今天扑了空。
1997 年 1 月的 HTTP/1.1 规范 RFC 2068添上410 Gone:资源在服务器上不再可用,也没有已知的转送地址,状况被视作永久。规范紧跟着写了一个颇有生活气息的动作:具备编辑链接能力的客户端,在得到用户批准后,应当删除对原请求地址的引用。服务器可以寄来停用通知;别人的书签和文章仍由持有人拿笔修改。
当时的目标是网站清洁工最熟悉的活:清理过期链接。RFC 2068 解释,410让远处的引用者知道,站主有意撤下资源,希望那些链接也跟着撤掉。限时促销、已离职人员的页面都是规范给出的例子。站主还可以决定哪些旧地址值得挂410,牌子挂多久。想贴告示,先得记得门牌曾经属于谁。
1999 年 6 月的 RFC 2616保留了“用户批准后删链接”的句子。它描绘的是一种合作:原站点知道内容为何退场,另一个作者知道自己为什么引用它。一个发出消息,另一个决定旧链接是删除、改写,还是留下来说明历史。代码在网络上传递信息,编辑权没有随它一起搬家。
到了2014 年的 RFC 7231,410章节不再包含要求链接编辑器删引用的具体句子。作为网站维护通知的用途仍在:源站说资源是有意撤下的,也希望远处链接得到清理。规范还把它与404的界线讲清楚:源站知道缺席很可能长期持续时,优先用410。同是空房间,一间暂时无法判断,另一间贴了退租告示。
后来连关门预告也有了专门字段。2019 年的 RFC 8594定义Sunset响应头,用日期提示某个 URI 将来很可能不再响应。规范举的档案馆例子中,若系统记着过去分配的地址,过期后可以回410;若连旧门牌都忘了,可能只回404。预告给使用者时间安排迁移,过期后的状态码说明地址届时的实际情况。
2022 年的 HTTP 语义规范 RFC 9110沿用这项分工。404对缺席的时长不下判断;410表达源站认为它很可能持久,并希望外部链接得到整理。两种响应在没有相反缓存指令时都可由缓存作启发式保存。站主负责说明自己的地址,引用者负责自己的文章。网络上的告别信可以寄到别人门口,不能替别人改稿。
网页已经散场,邀请函还在四处流通。410是主人留在门把手上的纸条。看到纸条的人,才决定把地址划掉,还是在旁边写上这段消失的来历。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





