不用打开浏览器,也能检查网站是否正常:curl 入门实战

举报
AiGuoHou 发表于 2026/10/17 14:33:28 2026/10/17
【摘要】 网站打不开、接口突然报错、网页跳转异常,该从哪里查起?学会使用命令行工具 curl,只需一条命令,就能查看网站的 HTTP 状态码、响应时间和跳转后的地址。无需安装复杂的软件,适合编程初学者和日常办公用户。

一、为什么值得学会 curl?

遇到网页无法访问时,我们通常会反复刷新页面,或者尝试更换浏览器。但这些操作不一定能告诉我们问题出在哪里。

例如:

  • 网站真的无法访问,还是页面地址已经变更?
  • 服务器返回了错误,还是网络连接超时?
  • 一个网址经过了几次跳转,最终去了哪里?

这时,curl 就能派上用场。

curl 是一款常见的命令行数据传输工具,支持 HTTP、HTTPS 等多种协议。它可以直接向网站发送请求,并将响应结果显示在终端中。它不仅适合开发者调试接口,也适合普通用户排查简单的网站访问问题。

二、第一步:检查网站是否能够响应

首先,打开终端。

  • macOS:打开「终端」应用。
  • Linux:打开系统自带的终端。
  • Windows:可以使用 WSL 或 Git Bash 运行本文的示例。

输入以下命令:

curl -I https://example.com

这里的 -I 表示只请求响应头,而不下载完整的网页正文。

如果网站正常响应,你可能会看到类似这样的内容:

HTTP/2 200
content-type: text/html

其中最值得关注的是第一行的状态码。

常见的 HTTP 状态码包括:

  • 200: 请求成功。
  • 301、302: 资源发生了重定向,通常需要前往另一个地址。
  • 403: 服务器拒绝当前请求。
  • 404: 请求的资源不存在,或者服务器没有找到它。
  • 500: 服务器发生了内部错误。
  • 503: 服务暂时无法处理请求。

需要注意,-I 发送的是 HEAD 请求。有些网站对 HEAD 请求的处理方式与普通网页请求不同,因此出现异常时,可以再用 GET 请求验证。

三、第二步:只看关键信息,不让终端刷屏

如果你只是想知道网站是否响应、耗时多久,就没有必要查看全部响应内容。

可以使用下面这条命令:

curl -sS -o /dev/null \
  -w '状态码:%{http_code}\n耗时:%{time_total}s\n' \
  --max-time 10 https://example.com

这条命令适用于 macOS 和 Linux 终端,各个参数的作用如下。

1. -sS:减少无关输出

s 表示静默模式,S 则让错误信息在需要时仍然显示。这样既不会显示普通进度信息,也不容易错过连接错误。

2. -o /dev/null:丢弃网页正文

我们只关心检查结果,不需要把整个网页下载到终端,所以可以将正文丢弃。

3. -w:自定义输出内容

%{http_code} 表示 HTTP 状态码,%{time_total} 表示整个传输过程耗费的时间。

4. --max-time 10:限制最长耗时

如果请求一直没有完成,curl 最多等待 10 秒,避免命令长时间挂起。

如果网站正常返回,输出可能是:

状态码:200
耗时:0.245123s

这表示请求成功,整个传输过程约用了 0.25 秒。实际耗时会受到网络、服务器负载和响应内容大小等因素影响。

四、第三步:检查网址跳转是否正常

有些网站会将旧网址跳转到新网址,或者将 HTTP 地址重定向到 HTTPS 地址。

如果只执行普通请求,curl 默认不会自动跟随 HTTP 重定向。想查看跳转后的结果,可以加上 -L 参数:

curl -sS -o /dev/null \
  -w '状态码:%{http_code}\n最终地址:%{url_effective}\n' \
  -L --max-time 10 https://example.com

这里新增了两个实用功能:

  • -L:跟随服务器返回的重定向。
  • %{url_effective}:显示最终使用的 URL。

这在检查网站迁移、旧链接失效和网址跳转规则时特别有用。

例如,你输入的是旧地址,最终地址却变成了新的域名,就可以据此确认请求实际到达了哪里。

不过,如果你需要排查每一次跳转的详细过程,还需要进一步查看响应头或使用 curl 的详细输出功能。

五、动手练习:给自己的网站做一次快速检查

假设你运营一个个人博客,希望每天发布文章前,快速确认首页是否能够正常响应。

可以先创建一个简单的 Shell 脚本。

新建文件 check_site.sh,写入以下内容:

#!/bin/sh

URL="https://example.com"

curl -sS -o /dev/null \
  -w "网址:%{url_effective}\n状态码:%{http_code}\n耗时:%{time_total}s\n" \
  -L --max-time 10 "$URL"

echo "检查完成"

将 https://example.com 替换为自己的网站地址,然后运行:

sh check_site.sh

终端就会显示最终访问地址、HTTP 状态码和请求耗时。

你还可以把这个脚本保存起来,在网站打不开时手动运行,用来辅助判断问题出在网络连接、网址跳转还是服务器响应上。

要注意的是,状态码为 200 不代表整个网站的所有功能都正常。它只能说明这次请求获得了成功响应,不能证明登录、搜索、支付等功能都没有问题。

另外,curl 遇到 HTTP 404 或 500 时,默认情况下仍可能正常结束命令执行,因此不能只看命令有没有报错,还要检查实际的 HTTP 状态码。

总结

curl 不只是程序员的调试工具,也是一款实用的日常效率工具。学会查看状态码、测量响应时间和跟随重定向,就能用几条简单命令快速了解网站的响应情况。

下次遇到网页打不开时,先别急着反复刷新,试着用 curl 检查一下,也许你会更快找到问题的线索。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。