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"
done6. 工具选择建议
- 选 curl:需要灵活控制请求(如自定义头、超时、重定向)或调试 API。
- 选 wget:需要简单检测或集成到自动化脚本(如定时任务监控)。
到此这篇关于curl和wget检测网页状态的区别的文章就介绍到这了,更多相关curl和wget区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解VScode自动补全CSS3前缀插件以及配置无效的解决办法
这篇文章主要介绍了详解VScode自动补全CSS3前缀插件以及配置无效的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-06-06
chatGPT deBug解决管理员登入服务器返回401问题
这篇文章主要介绍了chatGPT deBug解决管理员登入,服务器返回401,没有拿到数据,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-05-05
C++ Go语言实现将windows和linux文件删除至回收站
这篇文章主要为大家详细介绍了如何分别使用C++ Go语言实现将windows和linux文件删除至回收站,感兴趣的小伙伴可以跟随小编一起学习一下2023-12-12
全网最强下载神器IDM使用教程之利用IDM加速下载百度网盘大文件的方法
自从不限速度盘下载工具Pandownload被封杀后,有些网友纷纷表示:幸好我们还有IDM,但是很多朋友对IDM不是多了解,下面小编给大家介绍下下载神器IDM使用教程之利用IDM加速下载百度网盘大文件的方法,感兴趣的朋友跟随小编一起看看吧2023-01-01
在VS2019环境下使用Opencv调用GPU版本YOLOv4算法的详细过程
随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了windows下YOLO的环境搭建流程,感兴趣的朋友跟随小编一起看看吧2022-10-10


最新评论