curl和wget检测网页状态的区别

 更新时间:2025年04月04日 16:13:22   作者:wx65bc375171f34  
curl和Wget在linux日常使用中非常常见,它们都可以向服务器发出请求,curl和Wget的一个最明显的区别是:默认情况下Wget将查询的网页保存到系统,而 curl将其显示在终端输出中但不保存它,curl的使用率比Wget多得多

curl 和 Wget在linux日常使用中非常常见,它们都可以向服务器发出请求,curl 和 Wget 的一个最明显的区别是:默认情况下 Wget 将查询的网页保存到系统,而 curl 将其显示在终端输出中但不保存它,curl 的使用率比 Wget 多得多,可用于手机、计算机(包括 Windows 和 macOS 等操作系统)甚至物联网设备(例如智能手表、智能冰箱和其他类似物品)等环境中。

1. 使用 curl 检测网页状态

基础命令:检查 HTTP 状态码

curl -s -o /dev/null -w "%{http_code}" https://example.com
  • 输出结果:直接返回状态码(如 200 表示正常)。
  • 参数解释:
  • -s:静默模式(不显示进度或错误信息)。
  • -o /dev/null:丢弃响应内容(仅保留头信息)。
  • -w "%{http_code}":输出 HTTP 状态码。

完整检测(包含重定向)

curl -L -s -o /dev/null -w "%{http_code} %{url_effective}\n" https://example.com
  • 输出示例:200 https://example.com/(最终状态码和实际访问的 URL)。
  • 参数解释:
  • -L:自动跟随重定向(如 301/302)。

高级用法:超时和详细诊断

curl --connect-timeout 10 --max-time 20 -v -I https://example.com
  • 参数解释:
  • --connect-timeout 10:连接超时时间(10 秒)。
  • --max-time 20:整个请求超时时间(20 秒)。
  • -v:显示详细日志(调试用)。
  • -I:仅获取响应头(HEAD 请求)。

2. 使用 wget 检测网页状态

基础命令:检查 HTTP 状态码

wget --spider -S --max-redirect 0 https://example.com 2>&1 | grep "HTTP/" | awk '{print $2}'
  • 输出结果:直接返回状态码(如 200)。
  • 参数解释:
  • --spider:模拟爬虫(不下载内容)。
  • -S:显示服务器响应头。
  • --max-redirect 0:禁用重定向(查看原始状态码)。

完整检测(包含重定向)

wget --spider -q -O /dev/null https://example.com && echo "OK" || echo "FAIL"
  • 输出示例:OK(状态码为 200)或 FAIL(其他状态码或连接失败)。
  • 参数解释:
  • -q:静默模式。
  • -O /dev/null:丢弃下载内容。

3. 自动化脚本示例

**curl 脚本(检查状态码是否为 200)**

#!/bin/bash
URL="https://example.com"
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" -L $URL)

if [ $STATUS_CODE -eq 200 ]; then
  echo "$URL is UP (Status: $STATUS_CODE)"
else
  echo "$URL is DOWN (Status: $STATUS_CODE)"
  exit 1
fi

**wget 脚本(检查是否可访问)**

#!/bin/bash
URL="https://example.com"
wget --spider -q -T 10 -t 2 $URL

if [ $? -eq 0 ]; then
  echo "$URL is UP"
else
  echo "$URL is DOWN"
  exit 1
fi
  • 参数解释:
  • -T 10:超时时间(10 秒)。
  • -t 2:重试次数(2 次)。

4. 常见状态码解释

状态码

含义

典型场景

200

OK

正常访问

301/302

永久/临时重定向

域名跳转(需 -L 跟随)

403

Forbidden

IP/UA 被拦截

404

Not Found

页面不存在

500

Internal Server Error

服务器内部错误

503

Service Unavailable

服务过载或维护

5. 高级场景

检查内容是否包含关键字

# 使用 curl 检查内容是否包含 "Welcome"
curl -s -L https://example.com | grep -q "Welcome" && echo "OK" || echo "MISSING"

忽略 SSL 证书错误(测试用)

curl -k -s -o /dev/null -w "%{http_code}" https://example.com  # -k 跳过证书验证

批量检测多个 URL

URLS=("https://example.com" "https://google.com")
for URL in "${URLS[@]}"; do
  CODE=$(curl -s -o /dev/null -w "%{http_code}" -L $URL)
  echo "$URL: $CODE"
done

6. 工具选择建议

  • 选 curl:需要灵活控制请求(如自定义头、超时、重定向)或调试 API。
  • 选 wget:需要简单检测或集成到自动化脚本(如定时任务监控)。

到此这篇关于curl和wget检测网页状态的区别的文章就介绍到这了,更多相关curl和wget区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解VScode自动补全CSS3前缀插件以及配置无效的解决办法

    详解VScode自动补全CSS3前缀插件以及配置无效的解决办法

    这篇文章主要介绍了详解VScode自动补全CSS3前缀插件以及配置无效的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • chatGPT deBug解决管理员登入服务器返回401问题

    chatGPT deBug解决管理员登入服务器返回401问题

    这篇文章主要介绍了chatGPT deBug解决管理员登入,服务器返回401,没有拿到数据,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 高性能高可用高并发架构和系统设计思路大纲

    高性能高可用高并发架构和系统设计思路大纲

    高性能架构和系统设计要求高并发高性能,高性能更多的是先从编码角度、架构使用角度去让我们的单机(单实例)有更好的性能,然后再从整个系统层面来拥有更好的性能;高并发则直接是全局角度来让我们的系统在全链路下都能够抗住更多的并发请求
    2023-08-08
  • C++ Go语言实现将windows和linux文件删除至回收站

    C++ Go语言实现将windows和linux文件删除至回收站

    这篇文章主要为大家详细介绍了如何分别使用C++ Go语言实现将windows和linux文件删除至回收站,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • Visual Studio中文注释乱码两种解决方案

    Visual Studio中文注释乱码两种解决方案

    这篇文章主要给大家介绍了关于Visual Studio中文注释乱码两种解决方案,如果在Visual Studio Code中注释出现乱码,可能是因为文件编码格式不正确,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 全网最强下载神器IDM使用教程之利用IDM加速下载百度网盘大文件的方法

    全网最强下载神器IDM使用教程之利用IDM加速下载百度网盘大文件的方法

    自从不限速度盘下载工具Pandownload被封杀后,有些网友纷纷表示:幸好我们还有IDM,但是很多朋友对IDM不是多了解,下面小编给大家介绍下下载神器IDM使用教程之利用IDM加速下载百度网盘大文件的方法,感兴趣的朋友跟随小编一起看看吧
    2023-01-01
  • 一文学会Hadoop与Spark等大数据框架知识

    一文学会Hadoop与Spark等大数据框架知识

    Hadoop是一个开源的可运行于大规模集群上的分布式文件系统和运行处理基础框架,Spark是UC Berkeley AMPLab开发的是一种计算框架,分布式资源工作交由集群管理软件(Mesos、YARN),本文介绍Hadoop与Spark大数据框架知识,感兴趣的朋友一起看看吧
    2022-04-04
  • 在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

    在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程

    随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了windows下YOLO的环境搭建流程,感兴趣的朋友跟随小编一起看看吧
    2022-10-10
  • 微信小程序配置服务器域名详细图文教程

    微信小程序配置服务器域名详细图文教程

    每个微信小程序都要在上线前配置好服务器域名,不然会显示白屏,需要小程序开发者在小程序后台操作设置,下面这篇文章主要给大家介绍了关于微信小程序配置服务器域名的详细图文教程,需要的朋友可以参考下
    2024-02-02
  • OpenSSL生成v3证书方法及配置文件详解

    OpenSSL生成v3证书方法及配置文件详解

    本文主要介绍了OpenSSL生成v3证书方法及配置文件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论