免费工具 · 301 重定向速度测试
并排比较两个 301 重定向。
两个重定向都以相同方式测量:DNS、连接、TLS 和首字节时间。然后用一个脚本自行运行同样的测试。
输入第二个重定向并点击“对比”,几秒后结果会显示在这里。
亲自复现
不必只听我们说。
该脚本在你自己的机器上用 curl 进行相同的测量:每次使用全新连接,只计时第一个响应,并报告中位数。
- 下载或复制脚本。
- 在 macOS 或 Linux 终端中运行(Windows 上请使用 WSL 或 Git Bash)。
- 将中位数与上方结果进行对比。
你的数据会与我们的不同:结果取决于运行位置和你的网络。
compare-redirects.sh下载 .sh
#!/usr/bin/env bash
# Compare how fast two redirects answer. Requires curl and awk.
# Usage: ./compare-redirects.sh [URL_A] [URL_B] [RUNS]
set -euo pipefail
A="${1:-https://redirhub.com/}"
B="${2:-https://example.com}"
RUNS="${3:-10}"
measure() {
# Only the first response is timed (no redirect following), with a
# fresh connection each run, so DNS, TCP and TLS are included.
for _ in $(seq "$RUNS"); do
curl -s -o /dev/null --max-redirs 0 --max-time 10 \
-w '%{time_namelookup} %{time_connect} %{time_appconnect} %{time_starttransfer} %{http_code} %{redirect_url}\n' \
"$1" || true
done
}
report() {
# Median of each phase, in milliseconds. curl's times are cumulative, so
# connect and TLS are the differences between them, as on the web page.
awk -v url="$1" '
{ dns[NR]=$1; tcp[NR]=$2-$1; tls[NR]=($3>0 ? $3-$2 : 0); ttfb[NR]=$4; code=$5; loc=$6 }
function med(a, n,i,j,t,b){ n=NR; for(i=1;i<=n;i++) b[i]=a[i]
for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) if(b[j]<b[i]){t=b[i];b[i]=b[j];b[j]=t}
return (n%2 ? b[(n+1)/2] : (b[n/2]+b[n/2+1])/2) * 1000 }
END {
printf "%s\n status %s -> %s\n", url, code, (loc==""?"(no Location)":loc)
printf " DNS %6.1f ms | connect %6.1f ms | TLS %6.1f ms | first byte %6.1f ms (median of %d)\n",
med(dns), med(tcp), med(tls), med(ttfb), NR
}'
}
measure "$A" | report "$A"
measure "$B" | report "$B"
使用上面的两个重定向运行:
$ ./compare-redirects.sh https://redirhub.com https://example.com 10方法
测试测量的内容
DNS
查询重定向的域名。
连接
与最近的服务器建立 TCP 连接。
TLS
HTTPS 握手和证书校验。
服务器等待
直到 301 及其 Location 头到达。
只计时重定向响应,不计目标页面,因此目标页面慢不会影响重定向的结果。跳数单独统计。该工具运行在华盛顿特区、法兰克福和东京的 Vercel Functions 上,而非我们的重定向网络,并在每次运行中交替测量 A 和 B。
常见问题
常见问题
为什么重定向 A 默认是 redirhub.com?
redirhub.com 是 RedirHub 提供的一个真实 301,与客户重定向位于同一网络中。请选择 google.com 或 x.com 作为知名参考,或者将其替换为任意 URL,以比较你自己的两个重定向。
这个测试对两个重定向公平吗?
两者都会从同一地点获得相同次数的运行,按 A、B、A、B 交替进行,每次都使用新连接,并报告中位数。测试运行在 Vercel 上,而不是 RedirHub 的网络中,脚本也允许你从自己的环境中进行检查。
测试是从哪里运行的?
来自三个区域的 Vercel Functions:华盛顿特区(iad1)、法兰克福(fra1)和东京(hnd1)。选择一个,或全部三个来查看每个地点的结果。
它会跟踪整个重定向链吗?
计时只覆盖第一个响应。跳转次数和最终 URL 显示其余链路。
为什么我的脚本结果会不同?
到服务器的距离、你的连接和 DNS 缓存都会改变数值。比较 A 和 B 之间的差距,而不是绝对值。
