Шпаргалка по 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 для отладки:
-
Вывод в глагольном режиме:
curl -v https://example.comЭта команда предоставляет подробную информацию о запросе и ответе, включая заголовки и сведения о подключении. -
Полный дамп трассировки:
curl --trace - https://example.comЭто выводит hex-дамп всех входящих и исходящих данных, предлагая комплексный обзор всего общения. -
Трассировка с временными метками:
curl --trace - --trace-time https://example.comЭто добавляет временные метки к выводу трассировки, что помогает анализировать проблемы, связанные с временем. -
Вывод только заголовков ответа:
curl -s -o /dev/null -D - https://example.comЭта команда показывает только заголовки ответа, что полезно для быстрого анализа заголовков. -
Вывод только заголовков запроса:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'Эта сложная команда фильтрует только заголовки запроса, что полезно для проверки того, что отправляется. -
Использование Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.comЭта команда использует заголовок отладки Pantheon для получения дополнительной информации о запросе, что полезно для сайтов, размещенных на Pantheon. -
Принудительное использование протокола HTTP/2:
curl --http2 https://example.comЭто обеспечивает использование протокола HTTP/2, что можно комбинировать с -I для проверки поддержки HTTP/2. -
Отладка с netcat: В одном терминале:
nc -l 1234В другом:curl http://127.0.0.1:1234Это позволяет увидеть точно то, что отправляет curl, что полезно для отладки полезной нагрузки.
Эти продвинутые команды предоставляют мощные возможности отладки, позволяя разработчикам проверять различные аспекты HTTP-взаимодействий и устранять сложные проблемы.
Распространенные сценарии использования cUrl
curl — это универсальный инструмент командной строки с множеством применений. Вот некоторые из самых распространенных сценариев использования curl:
Взаимодействие с веб-сайтами
- Скачивание файлов: curl может скачивать файлы по URL.
- Веб-скрейпинг: curl может извлекать содержимое веб-страниц для целей скрейпинга.
- Тестирование веб-сайтов: curl полезен для проверки доступности веб-сайта и получения его содержимого.
Взаимодействие с API
- Отправка запросов к API: curl поддерживает различные HTTP-методы (GET, POST, PUT, DELETE) для взаимодействия с API.
- Тестирование конечных точек API: curl предоставляет быстрый способ тестирования и отладки конечных точек API без необходимости использования специализированного клиента API.
Сетевая отладка
- Проверка подключения: curl можно использовать для проверки сетевых подключений и устранения неполадок.
- Тестирование DNS: curl позволяет принудительно использовать конкретные DNS-серверы для устранения проблем, связанных с DNS.
- Осмотр заголовков: curl может отображать HTTP-заголовки, что полезно для отладки.
Передача данных
- Операции FTP: curl поддерживает передачу файлов с использованием протокола передачи файлов (FTP).
- Взаимодействие SMTP: curl можно использовать для отправки электронной почты через протокол простой передачи почты (SMTP).
Безопасность и аутентификация
- SSL-подключения: curl поддерживает безопасные подключения с использованием SSL/TLS.
- Аутентификация: curl может обрабатывать различные методы аутентификации, включая базовую аутентификацию и клиентские сертификаты.
Разработка и отладка
- Имитация различных HTTP-методов: curl позволяет разработчикам легко тестировать различные HTTP-методы.
- Глагольное логирование: глагольный режим 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, вы можете эффективно измерять и контролировать производительность веб-сайтов, помогая выявлять потенциальные узкие места и оптимизировать время загрузки.