菜鸟科技网

Linux下http请求命令有哪些?

curl - 最常用、最强大的全能选手

curl 是一个利用 URL 语法在命令行下工作的文件传输工具,它支持几乎所有常见的协议(HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, TELNET, DICT, FILE, IMAP, POP3, SMTP 等),是开发者和系统管理员的首选。

Linux下http请求命令有哪些?-图1
(图片来源网络,侵删)

基本语法

curl [选项] [URL]

常用选项和示例

最简单的 GET 请求 直接在 URL 后面跟上参数即可。

# 请求 example.com 首页
curl https://www.example.com
# 发送带查询参数的 GET 请求
curl "https://www.example.com/search?q=linux&lang=en"

指定请求方法 使用 -X--request 选项。

# 发送 POST 请求
curl -X POST https://www.example.com/api/users
# 发送 PUT 请求
curl -X PUT https://www.example.com/api/users/123

发送请求体 使用 -d--data 选项,curl 会自动将请求方法设置为 POST

# 发送 JSON 数据
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name":"John", "email":"john@example.com"}' \
  https://www.example.com/api/users
# 发送表单数据 (application/x-www-form-urlencoded)
curl -X POST \
  -d "username=admin&password=secret" \
  https://www.example.com/login

添加请求头 使用 -H--header 选项。

Linux下http请求命令有哪些?-图2
(图片来源网络,侵删)
curl -H "Accept: application/json" \
     -H "Authorization: Bearer YOUR_TOKEN_HERE" \
     https://www.example.com/api/protected-resource

保存响应到文件 使用 -o--output 选项。

# 将响应保存到 response.html
curl -o response.html https://www.example.com
# 显示下载进度并保存到文件
curl -O https://www.example.com/images/logo.png # -O 会自动用URL的文件名保存

显示详细的请求/响应信息 使用 -v--verbose 选项,这对于调试非常有用。

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

这会显示请求头、响应头和响应体的原始内容。

只显示响应头 使用 -I--head 选项,相当于发送一个 HEAD 请求。

Linux下http请求命令有哪些?-图3
(图片来源网络,侵删)
curl -I https://www.example.com

忽略 SSL 证书验证(不安全,仅用于测试) 如果服务器使用自签名证书,可以使用 -k--insecure

curl -k https://self-signed.badssl.com

wget - 专注于下载的简洁工具

wget 的名字来源于 "web get",它的主要设计目标是用于在后台下载文件,虽然它也能发起请求并显示内容,但其核心优势在于强大的下载功能。

基本语法

wget [选项] [URL]

常用选项和示例

最简单的 GET 请求并显示内容

wget -qO - https://www.example.com
# -q: 安静模式,不显示进度信息
# -O -: 将输出重定向到标准输出(即终端)

下载文件并保存

# 下载并保存为 index.html
wget https://www.example.com
# 下载并指定文件名
wget -O my_page.html https://www.example.com

发送 POST 请求 使用 --post-data 选项。

wget --post-data="username=admin&password=secret" https://www.example.com/login

添加请求头 使用 --header 选项。

wget --header="Authorization: Bearer YOUR_TOKEN_HERE" https://www.example.com/api/protected-resource

httpie - 人性化的 HTTP 客户端

httpie 是一个现代的、易于使用的命令行 HTTP 客户端,它的语法比 curl 更直观,更接近自然语言,非常适合快速测试 API。

安装

# 基于 Debian/Ubuntu
sudo apt install httpie
# 基于 CentOS/RHEL/Fedora
sudo yum install httpie
# 或者使用 dnf
sudo dnf install httpie

基本语法

http [选项] [METHOD] URL [ITEM [ITEM]]

常用选项和示例

最简单的 GET 请求

http https://www.example.com

发送 POST 请求和 JSON 数据 httpie 会自动将 Content-Type 设置为 application/json

http POST https://www.example.com/api/users name="John" email="john@example.com"

添加请求头 使用 Header:Value 的格式。

http GET https://www.example.com/api/protected-resource Authorization:"Bearer YOUR_TOKEN_HERE"

上传文件 使用 符号。

http POST https://www.example.com/upload file@/path/to/your/local/file.txt

查看详细响应 默认情况下,httpie 会以彩色和高亮的形式显示请求、响应头和响应体,非常清晰。


elinks / lynx - 终端下的网页浏览器

这两个工具是纯粹的文本模式浏览器,它们会将网页的 HTML 渲染成纯文本显示在终端里,虽然它们也可以用来发起 HTTP 请求,但主要用途是浏览网页。

安装

# elinks
sudo apt install elinks  # Debian/Ubuntu
sudo yum install elinks  # CentOS/RHEL
# lynx
sudo apt install lynx    # Debian/Ubuntu
sudo yum install lynx    # CentOS/RHEL

使用示例

# 使用 elinks
elinks https://www.google.com
# 使用 lynx
lynx https://www.google.com

在浏览器内,可以使用方向键导航,按 q 退出。


总结与对比

工具 主要特点 适用场景
curl 功能极其强大,支持协议多,选项丰富,稳定可靠。 首选工具,适用于几乎所有场景,从简单请求到复杂的脚本交互、自动化测试。
wget 专注于下载,语法简单,支持断点续传、递归下载。 主要用于下载单个或多个文件、网站镜像。
httpie 语法人性化,输出清晰(彩色高亮),专为 API 测试设计。 快速测试 RESTful API,交互式调试,对新手友好。
elinks/lynx 终端网页浏览器,将 HTML 渲染为文本。 在没有图形界面的服务器上快速浏览网页内容,检查链接是否有效。

如何选择?

  • 日常使用和脚本自动化:首选 curl,它是事实上的标准,几乎所有的 Linux 系统都预装了它。
  • 快速测试 API:使用 httpie,它的语法更直观,能让你更专注于数据本身。
  • 下载文件:使用 wget,它的下载功能比 curl 更专注和强大。
  • 在终端里看网页:使用 elinkslynx

对于绝大多数 Linux 熟练掌握 curl 就足以应对所有的 HTTP 请求需求了。

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