toolfree

短网址还原

展开 bit.ly、t.co、tinyurl 等短网址,在不点开的情况下看到完整目的地,以及中间经过的每一次转址。

这个工具需要服务器。浏览器不被允许在不跟随跳转的情况下读取跳转结果,所以由我们的服务器代为追踪并回报。只有你粘贴的网址会被送出,不会被保存,另一端的网页内容也不会被下载。

这个工具做什么

短网址本身什么都没告诉你。bit.ly/3xKp2Qm 不论指向新闻、购物网站,还是一个想骗走你密码的页面,看起来都一模一样。把它贴到上面,这里会代你追踪下去,列出它经过的每一个位址与最后的落点——而你的浏览器一次都不必真的造访。

中间的路径和目的地同样重要。一个连结若在抵达之前绕过四个不同网域,行为就和直接跳过去的连结不一样;而这件事在你直接点下去的时候是看不到的。

为什么浏览器做不到

本站其他工具都完全在你的浏览器里执行,只有这一个不行,原因值得了解。

当网页请求一个网址并要求浏览器不要跟着转址时,拿回来的是规范所称的「不透明」回应:一个封起来的物件,读不到状态码、读不到标头,也读不到目的地。而如果你改让浏览器跟着转址,你就已经造访了那个连结——那正是你原本想避免的事。

这道限制不是疏漏。少了它,你打开的任何一个网页都能把你的浏览器当成入口,悄悄探测你家网络上的每一个位址。所以这件事只能在浏览器以外的地方做,在这里就是由我们的服务器代为执行,再把看到的结果回报给你。

什么会被送出,什么不会

只有你贴上的网址。它只用来发出请求,不会被写进我们的任何纪录或数据库。

另一端的网页内容完全不会被下载——HTML 不会,图片不会,什么都不会。服务器只询问每个位址的状态,并读取指出下一站的 Location 标头。因此目的地网站会看到一个请求抵达,但除了一个数字和一个位址之外,没有任何东西回到这里。

这里看不到的转址

追踪路径指的是追踪 HTTP 转址——服务器回传的 301302307308。有些连结的转址则藏在网页里面:

这三种情况下,这里的路径会停在那个藏着机关的页面,而不是最终位址。这件事本身就是讯号:一个短网址服务若停在陌生网域并回传 200 而不是继续转址,就做了单纯的短网址服务不需要做的事。

连结也可能是因人而异的。有些服务会依国家、装置或时段送出不同的目的地。我们的服务器位在数据中心而不是手机上,所以一个专门对行动装置显示某个结果、对其他人显示另一个结果的连结,你在这里看到的会是后者。

路径中会出现的状态码

代码含义
301永久移转——连结有了新家时的标准转址
302暂时转址,也是多数短网址服务实际使用的
303改看其他资源,通常出现在表单送出之后
307暂时转址,并保留原本的请求方法
308永久转址,并保留原本的请求方法
200路径的终点:这个位址直接回应了,没有再往前送
404什么都没有。过期的短网址常落在这里
403 / 405该位址拒绝了请求,有时是因为它挡掉自动检查,而不是连结失效

不会被展开的位址

这里只追踪公开的网络位址。如果一个连结——或它中间任何一次转址——指向内部网络,追踪会就此停下并告诉你,而不会去连。这包括 127.0.0.1 这类回送位址、192.168.x.x10.x.x.x 等私有范围、云端服务用来存放机器凭证的 169.254.169.254 这类链路本地位址,以及只在内部网络才解析得到的名称。

短网址指向这些位址不会是失误,而是有人想利用公开工具去碰他自己碰不到的地方。非网页的协定、指定连接埠的连结,以及指回本站的连结,也基于同样理由一律拒绝。

短网址不是唯一的把戏

展开连结能告诉你它去哪里,但不能告诉你那里安全。拿到位址后有两件事值得检查: