Шпаргалка по cURL

Полезные команды cUrl с параметрами

Вот шпаргалка с самыми полезными командами cURL и их параметрами:

человек с вывеской curl

Изображение выше сгенерировано с помощью модели Flux для создания изображений по тексту.

cURL — это необходимый инструмент командной строки для выполнения HTTP-запросов и передачи данных. Для комплексного руководства по инструментам разработчика, включая Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions и управление пакетами Linux, см. Инструменты разработчика: Полное руководство по современным рабочим процессам.

Базовое использование cURL

  • Скачивание файла: curl http://example.com/file.zip -o file.zip
  • Скачивание нескольких файлов: curl -O URL1 -O URL2
  • Следование перенаправлениям: curl -L http://example.com
  • Отображение только заголовков: curl -I http://example.com

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

  • Базовая аутентификация: curl -u username:password http://example.com
  • Использование файла .netrc: curl --netrc-file .netrc http://example.com

HTTP-методы

  • POST-запрос: curl -X POST -d 'name=value' http://example.com
  • PUT-запрос: curl -X PUT -d @file http://example.com
  • Пользовательский метод: curl -X METHOD http://example.com

Заголовки и данные

  • Добавление пользовательского заголовка: curl -H "X-Header: Value" http://example.com
  • Отправка JSON-данных: curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
  • Отправка данных формы: curl -F "key=value" -F "file=@localfile" http://example.com

Опции SSL/TLS

  • Игнорирование проверки SSL-сертификата: curl -k https://example.com
  • Использование клиентского сертификата: curl --cert cert.pem --key key.pem https://example.com

Прокси и сетевые настройки

  • Использование прокси: curl -x proxysever.server.com:PORT http://example.com
  • Ограничение скорости загрузки: curl --limit-rate 1000B -O http://example.com/file

Управление выводом

  • Тихий режим: curl -s http://example.com
  • Глагольный режим: curl -v http://example.com
  • Запись вывода в файл: curl -o file.html http://example.com
  • Сохранение с удаленным именем файла: curl -O http://example.com/file.zip

Разное

  • Возобновление неудачной загрузки: curl -C - -o partial_file.zip http://example.com/file.zip
  • Установка тайм-аута: curl --connect-timeout 10 http://example.com
  • Использование конфигурационного файла: curl -K config_file http://example.com

Эта шпаргалка охватывает самые часто используемые команды cURL и их параметры, предоставляя быструю справочную информацию по различным HTTP-операциям и передаче данных.

Продвинутые команды cUrl

Вот несколько продвинутых команд curl для отладки:

  1. Вывод в глагольном режиме: curl -v https://example.com Эта команда предоставляет подробную информацию о запросе и ответе, включая заголовки и сведения о подключении.

  2. Полный дамп трассировки: curl --trace - https://example.com Это выводит hex-дамп всех входящих и исходящих данных, предлагая комплексный обзор всего общения.

  3. Трассировка с временными метками: curl --trace - --trace-time https://example.com Это добавляет временные метки к выводу трассировки, что помогает анализировать проблемы, связанные с временем.

  4. Вывод только заголовков ответа: curl -s -o /dev/null -D - https://example.com Эта команда показывает только заголовки ответа, что полезно для быстрого анализа заголовков.

  5. Вывод только заголовков запроса: curl -v -s -o /dev/null --stderr - https://example.com | grep '^>' Эта сложная команда фильтрует только заголовки запроса, что полезно для проверки того, что отправляется.

  6. Использование Pantheon Debugger: curl -I -H "Pantheon-Debug:1" https://example.com Эта команда использует заголовок отладки Pantheon для получения дополнительной информации о запросе, что полезно для сайтов, размещенных на Pantheon.

  7. Принудительное использование протокола HTTP/2: curl --http2 https://example.com Это обеспечивает использование протокола HTTP/2, что можно комбинировать с -I для проверки поддержки HTTP/2.

  8. Отладка с netcat: В одном терминале: nc -l 1234 В другом: curl http://127.0.0.1:1234 Это позволяет увидеть точно то, что отправляет curl, что полезно для отладки полезной нагрузки.

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

Распространенные сценарии использования cUrl

curl — это универсальный инструмент командной строки с множеством применений. Вот некоторые из самых распространенных сценариев использования curl:

Взаимодействие с веб-сайтами

  1. Скачивание файлов: curl может скачивать файлы по URL.
  2. Веб-скрейпинг: curl может извлекать содержимое веб-страниц для целей скрейпинга.
  3. Тестирование веб-сайтов: curl полезен для проверки доступности веб-сайта и получения его содержимого.

Взаимодействие с API

  1. Отправка запросов к API: curl поддерживает различные HTTP-методы (GET, POST, PUT, DELETE) для взаимодействия с API.
  2. Тестирование конечных точек API: curl предоставляет быстрый способ тестирования и отладки конечных точек API без необходимости использования специализированного клиента API.

Сетевая отладка

  1. Проверка подключения: curl можно использовать для проверки сетевых подключений и устранения неполадок.
  2. Тестирование DNS: curl позволяет принудительно использовать конкретные DNS-серверы для устранения проблем, связанных с DNS.
  3. Осмотр заголовков: curl может отображать HTTP-заголовки, что полезно для отладки.

Передача данных

  1. Операции FTP: curl поддерживает передачу файлов с использованием протокола передачи файлов (FTP).
  2. Взаимодействие SMTP: curl можно использовать для отправки электронной почты через протокол простой передачи почты (SMTP).

Безопасность и аутентификация

  1. SSL-подключения: curl поддерживает безопасные подключения с использованием SSL/TLS.
  2. Аутентификация: curl может обрабатывать различные методы аутентификации, включая базовую аутентификацию и клиентские сертификаты.

Разработка и отладка

  1. Имитация различных HTTP-методов: curl позволяет разработчикам легко тестировать различные HTTP-методы.
  2. Глагольное логирование: глагольный режим curl предоставляет подробную информацию о цикле запрос-ответ, помогая в отладке.

Эти сценарии использования демонстрируют гибкость curl как инструмента для веб-взаимодействий, тестирования API, сетевой отладки и задач разработки.

Тестирование производительности веб-сайтов с помощью cURL

curl — мощный инструмент для тестирования производительности веб-сайтов. Вот как вы можете использовать его для измерения различных аспектов скорости загрузки сайта:

Базовый тест производительности

Чтобы получить простую меру времени загрузки веб-сайта, используйте эту команду:

curl -o /dev/null -s -w "Общее время: %{time_total}s\n" "https://example.com"

Эта команда выведет общее время, затраченное на получение веб-сайта[2].

Подробные метрики производительности

Для более комплексного анализа вы можете использовать curl для измерения нескольких метрик производительности:

curl -s -w 'Тестирование времени отклика веб-сайта для :%{url_effective}\n\nВремя поиска:\t\t%{time_namelookup}\nВремя подключения:\t\t%{time_connect}\nВремя предпередачи:\t%{time_pretransfer}\nВремя начала передачи:\t%{time_starttransfer}\n\nОбщее время:\t\t%{time_total}\n' -o /dev/null https://example.com

Эта команда предоставляет разбивку различных этапов процесса загрузки, включая время DNS-поиска, время подключения и общее время[1].

Продвинутые метрики

Для еще более детального анализа вы можете включить дополнительные метрики:

curl -o /dev/null -w "Версия HTTP: %{http_version}\nРазмер страницы: %{size_download} байт\nКод ответа: %{response_code}\nПоиск DNS: %{time_namelookup} сек\nВремя подключения: %{time_connect} сек\nВремя до первого байта: %{time_starttransfer} сек\nОбщее время: %{time_total} сек\n" -s https://example.com

Эта команда включает информацию о версии HTTP, размере страницы и коде ответа[3].

Бенчмарк множества запросов

Чтобы проверить стабильность или следить за производительностью со временем, вы можете использовать цикл для выполнения нескольких запросов:

for i in {1..5}; do curl -o /dev/null -s -w "Запрос $i Общее время: %{time_total}\n" https://example.com; done

Это запустит тест пять раз и покажет общее время для каждого запроса[3].

Создание скрипта тестирования производительности

Вы можете создать простой bash-скрипт для автоматизации этих тестов и сохранения результатов:

#!/bin/bash
curl -s -w 'Тестирование времени отклика веб-сайта для :%{url_effective}\n\nВремя поиска:\t\t%{time_namelookup}\nВремя подключения:\t\t%{time_connect}\nВремя предпередачи:\t%{time_pretransfer}\nВремя начала передачи:\t%{time_starttransfer}\n\nОбщее время:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"

Замените “URL” на сайт, который вы хотите протестировать. Этот скрипт сохранит результаты в файле с временной меткой[5].

Используя эти команды и скрипты curl, вы можете эффективно измерять и контролировать производительность веб-сайтов, помогая выявлять потенциальные узкие места и оптимизировать время загрузки.

Полезные ссылки