当前位置: 首页 > article >正文

linux curl命令介绍以及使用

文章目录

  • `curl` 简介
  • `curl` 的安装
  • 基本用法
    • 发送GET请求
    • 将响应内容保存到文件
    • 显示请求的头部信息
    • 发送POST请求
    • 上传文件
    • 携带请求头
    • 处理重定向
    • 通过代理发送请求
    • 下载文件
    • 指定请求的超时时间
  • 高级用法
    • 模拟浏览器行为
    • 保持会话(Cookie)
    • 验证HTTPS请求
      • 总结


在Linux中,curl是一个强大且灵活的命令行工具,用于从命令行向服务器发送HTTP、HTTPS等协议的请求,并从中获取数据。它广泛应用于网络请求测试、API调试、文件下载等多种场景。

curl 简介

curl(Client URL)是一个支持多种协议(包括HTTP、HTTPS、FTP等)的数据传输工具。与浏览器不同,curl是通过命令行来发送请求并接收响应的,因此非常适合自动化任务。curl不仅可以处理简单的HTTP请求,还支持SSL/TLS安全传输、身份验证、代理、表单提交、文件上传等功能。

curl 的安装

在大多数Linux发行版中,curl默认已经安装。如果没有安装,可以通过以下命令安装:

# Ubuntu/Debian 系统
sudo apt-get install curl

# CentOS/RHEL 系统
sudo yum install curl

# Arch Linux 系统
sudo pacman -S curl

基本用法

发送GET请求

这是curl最简单、最常见的用法,即从指定URL获取资源。默认情况下,curl发送GET请求。

curl http://example.com

这将返回example.com的主页内容,并显示在终端中。

将响应内容保存到文件

如果不希望输出结果在终端中显示,而是保存为文件,可以使用-o选项指定输出文件名。

curl -o example.html http://example.com

这会将example.com的主页保存为example.html文件。

显示请求的头部信息

使用-I选项可以查看服务器返回的响应头,而不下载响应的主体内容。

curl -I http://example.com

输出示例:

HTTP/1.1 200 OK
Date: Thu, 05 Sep 2024 12:00:00 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8

发送POST请求

curl不仅能发送GET请求,还可以发送POST请求。使用-d选项来发送POST数据。

curl -d "name=user&age=30" http://example.com/form-submit

这会向example.com发送POST请求,并传递表单数据name=user&age=30

上传文件

使用curl还可以上传文件。假设有一个API可以接收文件上传,使用-F选项来发送文件。

curl -F "file=@/path/to/file.txt" http://example.com/upload

这将上传本地的file.txt文件到服务器。

携带请求头

在某些情况下,服务器需要客户端发送特定的请求头(例如User-AgentAuthorization等)。使用-H选项可以添加自定义请求头。

curl -H "Authorization: Bearer <token>" http://example.com/api

处理重定向

有时,服务器会将请求重定向到另一个URL,默认情况下curl不会自动跟随重定向。要启用自动重定向处理,可以使用-L选项。

curl -L http://example.com

通过代理发送请求

如果需要通过代理服务器发送请求,使用-x选项来指定代理服务器的地址和端口。

curl -x http://proxy.example.com:8080 http://example.com

下载文件

curl不仅可以用来获取网页,还可以用来下载文件。使用-O选项可以直接将文件保存为其原始名称。

curl -O http://example.com/file.zip

指定请求的超时时间

为了避免请求挂起,curl允许设置最大等待时间。可以使用--max-time选项来限制请求的最大执行时间(以秒为单位)。

curl --max-time 10 http://example.com

这将让请求在10秒内超时。

高级用法

模拟浏览器行为

有时,服务器会根据请求的User-Agent来判断请求是否来自浏览器。可以通过-A选项模拟浏览器请求。

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36" http://example.com

保持会话(Cookie)

curl可以使用和保存cookie,使得多次请求共享同一个会话。使用-c保存cookie,使用-b发送cookie

# 第一次请求,保存cookie到文件
curl -c cookies.txt http://example.com/login

# 发送cookie文件进行后续请求
curl -b cookies.txt http://example.com/dashboard

验证HTTPS请求

curl默认会检查HTTPS证书的有效性。如果你需要忽略证书验证(例如在开发环境),可以使用-k选项。

curl -k https://example.com

总结

curl是一款功能非常强大的工具,它能够处理各种复杂的网络请求和响应。在日常的开发、调试和网络任务中,curl提供了非常灵活的操作方式。掌握curl的用法可以帮助你快速调试API接口、自动化网络任务以及高效处理文件传输。


http://www.kler.cn/a/292090.html

相关文章:

  • vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常
  • LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程
  • 数据研发基础 | 什么是流批一体
  • 利用云计算实现高效的数据备份与恢复策略
  • 基于PHP技术的校园站的设计与实现
  • 插入排序——希尔排序
  • React 通用后台管理项目
  • 消息队列RabbitMQ
  • 第8讲 ,ISP 串口程序下载
  • C# 字符串(String)使用教程
  • LeetCode2.两数相加
  • Monorepo学习笔记
  • react 子组件调用父组件方法,获取的数据不是最新值
  • 常用网络协议理解
  • 加锁造成的线程优先级反转
  • 搜维尔科技:使用Facewaer面部捕捉系统制作栩栩如生的脸部动画
  • Maven 的 pom.xml 文件中<dependency> 元素及其各个参数的解释
  • EmguCV学习笔记 C# 10.1 人脸检测 CascadeClassifier类
  • C语言猜数小游戏
  • SpringBoot2:请求处理原理分析-请求Path与接口的映射关系(HandlerMapping)
  • 51单片机——蜂鸣器
  • Springboot +vue 网络零食商城系统
  • 828华为云征文:华为云 Flexus X 实例性能测评——SuperBench 一键窥见性能
  • 数据丢失要怎么处理,助你一键恢复数据
  • 算法笔试-编程练习-好题-02
  • 【操作系统】线程同步之互斥量