菜鸟科技网

Windows HTTP命令有哪些具体功能?如何通过它高效排查网络问题?

在 Windows 系统中,处理 HTTP 请求主要有两种命令行工具:

Windows HTTP命令有哪些具体功能?如何通过它高效排查网络问题?-图1
(图片来源网络,侵删)
  1. curl:功能强大、灵活,是现代推荐使用的工具,它被内置于 Windows 10 (1803) 及更高版本中。
  2. bitsadmin:一个专门用于后台智能传输服务 的工具,特别适合下载大文件,因为它支持断点续传和低优先级网络占用。

下面我将详细介绍这两个工具,并提供大量实用的示例。


curl 命令 (现代首选)

curl 是一个强大的命令行工具和库,用于传输数据,它支持多种协议,其中最常用的就是 HTTP/HTTPS。

基本语法

curl [选项] [URL]

常用选项和示例

示例 1:最简单的 GET 请求

直接访问一个 URL,获取其内容并打印到控制台。

curl https://www.example.com

示例 2:将响应保存到文件

使用 -o-O 选项将下载的内容保存为文件。

Windows HTTP命令有哪些具体功能?如何通过它高效排查网络问题?-图2
(图片来源网络,侵删)
  • -o (小写):指定保存的文件名。

    curl -o my_page.html https://www.example.com

    这会将 example.com 的首页保存为当前目录下的 my_page.html 文件。

  • -O (大写):使用 URL 中的文件名作为保存名。

    curl -O https://www.example.com/images/logo.png

    这会下载图片并保存为 logo.png

    Windows HTTP命令有哪些具体功能?如何通过它高效排查网络问题?-图3
    (图片来源网络,侵删)

示例 3:发送 POST 请求

使用 -d--data 选项发送 POST 请求的数据。

curl -X POST -d "username=myuser&password=mypass" https://example.com/login
  • -X POST:明确指定请求方法为 POST,虽然 -d 通常默认触发 POST,但显式声明更清晰。
  • -d:指定要发送的数据。

示例 4:发送 JSON 格式的 POST 请求

在调用 API 时非常常见。

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name": "John Doe", "email": "john.doe@example.com"}' \
  https://api.example.com/users
  • -H (小写):用于添加 HTTP 请求头。
  • -H "Content-Type: application/json":告诉服务器我们发送的是 JSON 数据。

示例 5:添加自定义请求头

添加 Authorization 头来传递 Token。

curl -H "Authorization: Bearer YOUR_API_TOKEN_HERE" https://api.example.com/protected-data

示例 6:跟随重定向

默认情况下,curl 不会跟随 HTTP 3xx 重定向,使用 -L 选项可以启用此功能。

curl -L http://shorturl.example.com/redirects-to-somewhere

示例 7:静默模式

不显示进度信息,只输出结果,对于脚本处理非常有用。

curl -s https://www.example.com

示例 8:显示详细的请求/响应信息

使用 -v (verbose) 或 --trace 选项来查看完整的请求头、响应头和通信过程,这对于调试非常有帮助。

curl -v https://www.example.com

示例 9:指定请求超时

使用 --connect-timeout-m (或 --max-time) 来设置连接和整个请求的超时时间(秒)。

# 连接超时设置为 5 秒
curl --connect-timeout 5 https://www.slow-server.com
# 整个请求超时设置为 10 秒
curl -m 10 https://www.slow-server.com

示例 10:不验证 SSL 证书 (不安全,仅用于测试)

在测试自签名证书或本地 HTTPS 服务时,可以使用 -k--insecure 来跳过证书验证。

curl -k https://self-signed-cert-server.com

curl 的优点

  • 功能全面,几乎支持所有 HTTP 功能。
  • 语法简洁,易于学习和使用。
  • 社区庞大,文档和示例丰富。

bitsadmin 命令 (专注文件下载)

bitsadmin 是一个 Windows 原生的命令行工具,用于创建和管理下载/上传任务,它的核心优势在于利用 BITS 服务,可以在后台稳定地下载文件,即使网络中断或系统重启,任务也能自动恢复。

基本语法

bitsadmin /transfer <JobName> <SourceURL> <DestinationPath>

常用选项和示例

示例 1:最简单的下载

创建一个名为 "MyDownloadJob" 的任务,从指定 URL 下载文件到 C:\downloads\ 目录。

bitsadmin /transfer MyDownloadJob https://www.example.com/largefile.zip C:\downloads\largefile.zip

示例 2:不显示命令行窗口

默认情况下,bitsadmin 会弹出一个命令行窗口显示进度,使用 /unattended 选项可以隐藏它。

bitsadmin /transfer /unattended MyDownloadJob https://www.example.com/largefile.zip C:\downloads\largefile.zip

示例 3:断点续传

bitsadmin 的最大优点就是内置断点续传功能,如果在下载过程中关闭命令行或重启电脑,下次只需用相同的命令重新运行,它会自动从上次中断的地方继续下载。

示例 4:监控下载进度

可以随时查看任务的当前状态。

bitsadmin /MyDownloadJob /progress

示例 5:列出所有 BITS 任务

查看当前系统上所有正在运行或已完成的 BITS 任务。

bitsadmin /list /allusers

示例 6:获取下载文件的校验和

下载完成后,可以计算文件的 MD5 或 SHA1 值来验证文件完整性。

# 计算文件的 MD5
certutil -hashfile C:\downloads\largefile.zip MD5
# 计算文件的 SHA1
certutil -hashfile C:\downloads\largefile.zip SHA1

bitsadmin 的优点

  • 极其稳定:利用 Windows 服务,下载任务可靠,不易中断。
  • 网络友好:可以设置低优先级,不影响其他网络应用。
  • 断点续传:默认支持,对大文件下载非常友好。
  • 系统原生:无需安装任何额外软件。

bitsadmin 的缺点

  • 功能相对单一,主要用于文件下载。
  • 语法比 curl 稍显复杂。

总结与选择

特性 curl bitsadmin
主要用途 通用 HTTP/HTTPS 客户端 专注于后台文件下载
功能 强大 (GET, POST, PUT, DELETE, 自定义头, 认证等) 较弱 (主要是下载)
稳定性 依赖当前会话,会话结束任务停止 依赖 Windows 服务,稳定可靠,可后台运行
断点续传 不支持 (需手动实现或使用第三方工具) 原生支持
易用性 语法简洁,上手快 语法稍复杂,需要记住任务名
安装要求 Windows 10+ 内置,旧版需手动安装 所有 Windows 版本均内置
最佳场景 API 测试、快速获取网页内容、发送各种 HTTP 请求 下载大文件、需要可靠下载、不干扰用户网络

如何选择?

  • 如果你需要测试 API、与 Web 服务交互、发送 GET/POST 请求,或者只是快速下载一个网页使用 curl,它是现代、灵活且功能齐全的首选。
  • 如果你需要在脚本中下载一个可能很大的文件,并希望它能稳定完成,即使中途网络出问题也能恢复使用 bitsadmin,它的可靠性和断点续传能力是 curl 无法比拟的。

希望这份详细的指南能帮助你更好地理解和使用 Windows 中的 HTTP 命令!

分享:
扫描分享到社交APP
上一篇
下一篇