Утіліта curl (Client URL)

curl (Client URL) — це популярна командна утиліта для передачі даних на сервери та з серверів, використовуючи різні протоколи. Вона дуже потужна та гнучка, що робить її незамінною для багатьох завдань в адмініструванні серверів, розробці програмного забезпечення та автоматизації. Нижче детальний опис її можливостей та використання.

Основні можливості

  1. Підтримка різних протоколів

    • HTTP та HTTPS: найчастіше використовувані протоколи для передачі даних.
    • FTP та FTPS: для передачі файлів.
    • SCP та SFTP: для безпечного копіювання файлів через SSH.
    • TFTP, LDAP, DICT, TELNET, FILE: менш популярні, але теж підтримуються.
  2. Завантаження та вивантаження файлів

    • Завантаження файлів: curl -O [URL] (зберігає файл із назвою на сервері) або curl -o [filename] [URL] (зберігає файл з вказаною назвою).
    • Вивантаження файлів: curl -T [local file] [URL].
  3. Аутентифікація

    • Базова аутентифікація: curl -u [username]:[password] [URL].
    • Digest, NTLM, Negotiate/Kerberos: підтримуються більш складні методи аутентифікації.
  4. SSL/TLS

    • Використання безпечних з’єднань: curl -k [URL] (ігнорувати помилки сертифікатів) або curl --cert [certfile] --key [keyfile] [URL] для роботи з сертифікатами.
  5. Параметри командного рядка

    • Заголовки: curl -H "Header: value" [URL].
    • Кешування: curl --compressed [URL] (підтримка стиснення).
    • Проксі: curl -x [proxy] [URL] (використання проксі).
  6. Робота з API

    • Відправка запитів POST: curl -X POST -d "param1=value1&param2=value2" [URL].
    • Відправка JSON-даних: curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' [URL].
    • Отримання відповідей: curl [URL].

Приклади використання

  1. Завантаження веб-сторінки та збереження її в файл:

    curl -o example.html http://example.com
    
  2. Завантаження файлу за допомогою протоколу FTP:

    curl -u username:password -O ftp://ftp.example.com/path/to/file.txt
    
  3. Надсилання POST-запиту з даними:

    curl -X POST -d "param1=value1&param2=value2" http://example.com/resource
    
  4. Завантаження файлу за протоколом HTTPS, ігноруючи помилки сертифікатів:

    curl -k -o example.html https://example.com
    
  5. Використання проксі-сервера для запиту:

    curl -x http://proxy.example.com:8080 -o example.html http://example.com
    
  6. Завантаження контенту з стисненням:

    curl --compressed -o compressed.html http://example.com
    
  7. Завантаження файлу з аутентифікацією за допомогою SSH:

    curl -u user:password --key ~/.ssh/id_rsa --pubkey ~/.ssh/id_rsa.pub sftp://example.com/path/to/file
    

Корисні параметри

  • -I: отримати тільки заголовки.
  • -L: слідувати за редиректами.
  • -C -: продовжити перерване завантаження.
  • --limit-rate: обмеження швидкості передачі даних.
  • -A: вказати User-Agent.
  • -e: вказати Referer.

Додаткові ресурси

curl — це потужний інструмент, який можна використовувати для різноманітних завдань, від простих завантажень до складних запитів до API. Він підтримується на багатьох платформах, що робить його універсальним інструментом для розробників та системних адміністраторів.