Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
20 Мар 2025
9 мин
218

Что такое Curl и как пользоваться утилитой

Пройдите тест, узнайте какой профессии подходите

Самая базовая команда: curl http://example.com. Она запрашивает страницу и возвращает ее HTML-код.

Curl — это инструмент для работы с интернет-запросами. Он передает данные между устройством и сервером через URL. Поддерживает популярные протоколы, HTTP и HTTPS, работает на любых платформах. А еще с его помощью можно тестировать соединения и получать данные даже на простых устройствах.

Разберем, как работает и чем может быть полезен Curl.

Что такое Curl

Если совсем просто, это командная утилита для работы с сетью. Curl передает данные через разные протоколы — HTTP, FTP и другие. С его помощью разработчики, тестировщики и администраторы могут отправлять запросы, загружать файлы, проверять API и отлаживать веб-приложения.

История Curl началась в 1996 году. Бразильский разработчик Рафаэль Сагула создал инструмент для работы с HTTP-запросами. Позже проект возглавил Дэниел Стенберг. Он добавил возможность автоматически получать курсы валют.

Сначала утилита называлась http get, потом — url get. В 1998 году, когда появилась функция загрузки файлов, проект получил название Curl.

Со временем инструмент развился. Теперь он поддерживает более 25 протоколов и обрабатывает миллионы запросов в месяц. Это проект с открытым кодом, которым пользуется сообщество разработчиков по всему миру.

Зачем он нужен

Curl — инструмент для работы с HTTP-запросами. Он помогает разработчикам тестировать и отлаживать API. Через командную строку можно выполнять GET, POST и другие запросы.

За кулисами работает libcurl — библиотека, на которой основан инструмент. Она обрабатывает запросы, управляет соединениями и поддерживает множество кодовых баз.

Опции Curl нужны только для того, чтобы передавать данные по интернет-протоколам. Она не изменяет содержимое, а просто выполняет запросы.

Самая базовая команда: curl http://example.com. Она запрашивает страницу и возвращает ее HTML-код. Это удобно для того, чтобы проверять сайт и работать с его содержимым.

Инженеры по тестированию активно используют Curl. Они проверяют, как работает API, отправляют запросы, анализируют ответы сервера и находят ошибки во взаимодействии сервисов. В Skypro вы сможете освоить эту профессию с нуля, научитесь разрабатывать современные веб-сервисы и получите востребованные навыки, которые помогут вам найти интересную и высокооплачиваемую работу.

Синтаксис Curl

Синтаксис — это правила команд, с помощью которых можно выполнять запросы через терминал. Он определяет, как правильно указывать URL, параметры и опции для управления запросами. Основной формат команды Curl:

curl [опции] [URL]

  • curl — основная команда.
  • [опции] — параметры, которые управляют запросом.
  • [URL] — адрес, к которому отправляется запрос.

Вот несколько примеров.

Как выглядит команда Как использовать
curl https://example.com Простой GET-запрос. Например, получить данные с сайта. Такой запрос возвращает HTML-код страницы
curl -X POST -d "name=John&age=30" https://example.com/api POST-запрос. Например, отправить данные на сервер. Флаг -X POST указывает метод, а -d передает данные
curl -o page.html https://example.com Сохранить ответ в файл. Опция -o записывает содержимое ответа в файл page.html
curl -H "Authorization: Bearer token" https://example.com/api Добавить заголовки. С опцией -H можно передавать HTTP-заголовки
curl -I https://example.com Просмотреть заголовки ответа. Опция -I показывает только заголовки ответа

Как установить Curl

Шаги зависят от того, какой операционной системой вы пользуетесь. На iOS и версии Windows, младше 10, Curl установлен по умолчанию.

Как установить Curl на Windows

Если используете операционную систему Windows 7, 8 или более старую версию, нужно установить Curl вручную.

  1. Создайте папку под названием C:\curl на диске C.
  2. Потом перейдите на официальный сайт загрузки Curl и выберите необходимый файл:
    — Для 64-разрядной версии Windows найдите в разделе Win64 — Generic вторую по счету версию Win64 ia64 zip с поддержкой SSL.
    — Для 32-разрядной версии Windows в разделе Win32 — Generic найдите файл версии Win32 zip с поддержкой SSL.
  3. После того как скачали файл, распакуйте его и переместите curl.exe в только что созданную папку C:\curl.
  4. Теперь загрузите файл сертификатов: перейдите на страницу загрузки сертификатов и скачайте файл cacert.pem. Этот файл содержит цифровые сертификаты.
  5. Переместите скачанный файл cacert.pem в папку C:\curl и переименуйте его в curl-ca-bundle.crt.
  6. Добавьте Curl в переменную среды PATH. Чтобы запускать из командной строки, добавьте путь к нему в системные переменные:
    — Откройте «Пуск» и щелкните правой кнопкой мыши по значку «Этот компьютер» (или «Компьютер», если у вас Windows 7), потом выберите «Свойства».
    — В разделе «Дополнительно» нажмите на «Переменные среды».
    — В блоке «Системные переменные» найдите «Путь» и нажмите «Изменить».
    — В открывшемся окне нажмите «Создать» и добавьте путь C:\curl (для Windows 7 в поле «Значение переменной» добавьте C:\curl).
  7. Сохраните изменения через «ОК».

Как пользоваться утилитой

Давайте разберемся, как использовать Curl в разных сценариях.

  • Чтобы отправить GET-запрос к серверу, выполните команду:
    curl https://example.com.
  • Если нужно сделать POST-запрос, укажите тип запроса с помощью параметра -X и передайте данные с ключом -d: curl -X POST -d «data» https://example.com.
  • Для скачивания файла используйте опцию -O: curl -O https://example.com/file.zip.
  • Чтобы просмотреть заголовки ответа, задействуйте параметр -I: curl -I https://example.com.
  • Аутентификацию можно выполнить через имя пользователя и пароль: curl -u username:password https://example.com.
  • Следовать редиректам можно с параметром -L: curl -L https://example.com
  • А чтобы загрузить файл на сервер, воспользуйтесь командой: curl -T file.txt https://example.com/upload.

Эти команды удобно протестировать на сервисе JSONPlaceholder — это бесплатный онлайн REST API, который дает фиктивные данные, чтобы учиться и тестировать.

Вывод заголовков

Вывод заголовков в Curl помогает узнать информацию о сервере и ответе без загрузки всего контента. Заголовки показывают код ответа, тип содержимого, дату, сервер, параметры кеширования и другие метаданные. Это полезно для отладки, проверки доступности ресурса и анализа работы API.

Заголовки HTTP-ответа можно вывести с флагами:

-I — показывает только заголовки:

curl -I https://example.com

-i — включает заголовки в полный ответ:

curl -i https://example.com

Первый вариант удобен для проверки заголовков сервера, а второй — если нужно видеть тело ответа.

Аутентификация

Аутентификация в Curl — это возможность передавать логин и пароль, когда запросы отправляются к защищенным ресурсам. Аутентификация нужна для доступа к API, веб-сайтам и FTP-серверам.

  • Есть базовая аутентификация.
    curl -u username:password https://example.com
    -u передает логин и пароль. Сервер проверяет учетные данные перед доступом к ресурсу.
  • Аутентификация через заголовки
    curl -H "Authorization: Bearer your_token" https://example.com/api
    Используется для API, которые требуют токенов.
  • Аутентификация через OAuth
    curl -H "Authorization: OAuth your_token" https://example.com/api
    Нужно для OAuth-защищенных ресурсов.
  • Аутентификация на FTP-сервере
    curl -u username:password ftp://example.com/file.txt

Для работы с файлами на FTP.

Следование редиректам

Редиректы в Curl — это автоматический переход по перенаправлениям (HTTP 3xx), когда сервер указывает новый адрес. По умолчанию Curl не переходит по редиректам, но это можно включить флагом -L.

Пример запроса с редиректами:

curl -L https://example.com

Команда нужна для двух действий:

  • отправляет запрос на https://example.com;
  • если сервер отвечает 301, 302 или 307, Curl автоматически переходит на новый URL.

Это полезно для работы с сайтами, где старые ссылки перенаправляют на новые.

Загрузка файла

Это когда данные скачиваются с сервера на ваш компьютер с помощью командной строки. C Curl можно загружать файлы по HTTP, HTTPS, FTP и другим протоколам.

Файл можно сохранить с оригинальным или заданным именем, а при необходимости — авторизоваться на сервере. Это удобно, когда нужно скачать обновления автоматически, работать с API или получить данные из интернета.

Сохранить файл с его оригинальным именем:

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

Сохранить файл с другим именем:

curl -o myfile.zip https://example.com/file.zip

Скачать файл с FTP (если нужен логин и пароль):

curl -u user:password -O ftp://example.com/file.txt

Эти команды загружают файлы с указанного URL на ваш компьютер.

Ограничение скорости

В Curl можно управлять скоростью при загрузке или отправке файла, если нужно избежать блокировок со стороны сервера. Это полезно, когда:

  • медленный интернет;
  • сервер ограничивает скорость и частые запросы могут привести к блокировке;
  • интернет-трафик ограничен (например, мобильный).

Если нужно загрузить файл на сервер и избежать перегрузки сети, можно ограничить скорость отправки через вот эту команду:

curl --limit-rate 1M -T myfile.zip https://example.com/upload

Передача файлов

Еще можно не только скачивать файлы, но и отправлять их на сервер. Это нужно, чтобы загружать данные в API, на FTP-серверы или веб-формы. Например, можно загрузить файл через HTTP POST. Для этого используется следующая команда:

curl -F "file=@document.txt" https://example.com/upload

Вот из чего она состоит:

  • -F указывает, что передается файл.
  • @ перед именем файла значит, что файл взяли с диска.

Отправка данных POST

POST-запрос используют, когда нужно отправить данные на сервер. Например, передать информацию о регистрации пользователя, отправить формы или добавить данные в базу.

curl -X POST -d "name=John&age=30" https://example.com/api

В этом запросе сервер получает имя «John» и возраст «30». После этого он может сохранить их или использовать, чтобы ответить. POST-запрос передает информацию, а сервер с ней работает.

Передача и прием куки

Еще c Curl можно получать и отправлять cookies — это важно при работе с сайтами, где нужно авторизоваться или отслеживать сессии.

Чтобы сохранить cookies, используется флаг -c. Например, команда curl -c cookies.txt https://example.com загружает страницу и записывает все полученные cookies в файл cookies.txt.

Для следующих запросов можно использовать этот файл с флагом -b. Команда curl -b cookies.txt https://example.com/profile отправляет запрос уже с сохраненными cookies — тогда сервер может распознать пользователя.

Если cookie уже известен, его можно передать напрямую через заголовок. Например, curl -H "Cookie: session=abc123" https://example.com добавит cookie session=abc123 в запрос. Это полезно, если не хочется использовать файлы, чтобы хранить данные сессии.

Использование прокси

Curl помогает отправлять запросы через прокси-сервер. Это полезно, когда нужно скрыть реальный IP, обойти ограничения или когда работа идет с локальными сетями.

Чтобы использовать HTTP-прокси, нужно указать его адрес в флаге -x. Например, команда curl -x http://proxy.example.com:8080 https://example.com отправит запрос через прокси proxy.example.com на порту 8080.

Если прокси требует авторизацию, можно передать логин и пароль с помощью -U. Например, curl -x http://proxy.example.com:8080 -U user:password https://example.com выполнит запрос с указанными учетными данными.

Главное о Curl

  • Curl помогает передавать данные через интернет разными способами, например по HTTP или FTP. Можно отправлять запросы, скачивать файлы, проверять работу API и тестировать сайты. Этот инструмент используют разработчики, тестировщики и администраторы.
  • На новых операционных системах Windows и iOS устанавливать Curl не нужно. Для старых версий Windows и Linux есть инструкции.
  • С Curl можно отправлять GET-запросы, чтобы получать данные, использовать POST для отправки информации, скачивать файлы с опцией -O, просматривать заголовки ответа через -I, проходить аутентификацию с -u, следовать редиректам с -L и загружать файлы на сервер с помощью -T.

Добавить комментарий