摘要
- HTML 链接用
href写明要去的地方,还可以用ping列出接收通知的地址。浏览器跟随链接时,可另发一条 POST 请求。 - 设计者曾希望把点击追踪从绕路的跳转链接里搬到明处。真正的难题是:读者能否在点击的那一刻看见并控制这条附带通知。
一扇门写着目的地。你推门进去,确实到了那里;隔壁楼的门铃也响了。谁按的?还是你。网页上的 ping 属性就干这件事。它写在链接里,给浏览器一份额外的通知地址。href 管你要去哪里,ping 管谁得知你去了。一次点击,两个方向。
2005 年 10 月的 WHATWG 邮件讨论已经在争论这声铃:浏览器是否应让用户关闭通知、挑选要忽略的地址,是否应提示点击会发出额外请求。那些问题毫不抽象。把地址写进 HTML 源码,懂得查看源码的人就能找到;普通读者只看见链接和它指向的去处。源码里的明牌,未必是屏幕上的明牌。
2006 年 1 月,Tyler Close 在 WHATWG 邮件中为这个设计辩护。网站原本就能用中转链接统计外链点击:先把人送到自家的跳转地址,再带到真正的目标。这样一来,复制链接、收藏网页,拿到的常常是绕路的地址。他主张保留真实的 href,把统计通知单独写进 ping。这想法有一股工程师式的爽快:门牌归门牌,记账归记账,把两件事分开写。
今天维护中的 HTML 标准把做法写得很细。ping 可以列出几个以空格分开的 HTTP 或 HTTPS 地址。浏览器跟随链接时,可向这些地址另发 POST;请求体只有四个字节:PING。返回的正文由浏览器忽略。浏览器也可依照用户偏好,略过部分乃至全部通知地址。网页列出门铃,浏览器决定按哪几个。
四个字节听起来像没什么可说。可请求本身会到达指定服务器,标准还规定了有条件出现的 Ping-To、Ping-From 请求头。通知的价值并不藏在那四个字母里,而在“有人点了这个链接”这件事。谁能看见这个动作、谁能关掉这动作,才是当年争执的核心。
2007 年 11 月,Boris Zbarsky 在讨论中指出:就算浏览器在状态栏提示了附带通知,很多人也根本不看状态栏。他当时预计,默认界面可能什么都不提示。这是当年的判断,不是今天各款浏览器的普查;但问题一针见血。把提醒放在没人看的地方,技术上有提醒,体验上仍像没提醒。
标准的命运也拐过弯。2010 年 3 月 4 日,W3C HTML 工作组主席宣布一项共识呼吁通过,要求从该组的 HTML5 草案移除 <a ping>;邮件同时留下日后重新提出的可能。2018 年的 W3C HTML 5.3 工作草案又写到了链接审计,还直言在当时已知的浏览器中,没有一款提供界面,让用户管理或甚至得知这种审计。纸面上的“读者可掌控”,一直等着真正长出按钮。
WHATWG 现行标准保留了 ping,也允许浏览器显示通知地址、按用户偏好调整行为。于是,这不是一行 HTML 能独自完成的透明。网页作者掌握地址列表,浏览器掌握发送动作与界面,读者只有在界面把第二声铃交代清楚时,才真正掌握选择。
真实目的地写在链接里,确实比把读者先送进跳转迷宫更坦率。不过,门上写了去处,隔壁的铃也该有个能看见的牌子。读者点的是一根链接,不是一份需要翻源码才能读完的合同。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





