免费工具 · 301 重定向速度测试

并排比较两个 301 重定向。

两个重定向都以相同方式测量:DNS、连接、TLS 和首字节时间。然后用一个脚本自行运行同样的测试。

快速选择
vs
次数
测试地点

输入第二个重定向并点击“对比”,几秒后结果会显示在这里。

亲自复现

不必只听我们说。

该脚本在你自己的机器上用 curl 进行相同的测量:每次使用全新连接,只计时第一个响应,并报告中位数。

  1. 下载或复制脚本。
  2. 在 macOS 或 Linux 终端中运行(Windows 上请使用 WSL 或 Git Bash)。
  3. 将中位数与上方结果进行对比。

你的数据会与我们的不同:结果取决于运行位置和你的网络。

下载 .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 之间的差距,而不是绝对值。