cURL Справочник
Полезные команды cUrl с параметрами
Вот справочник по самым полезным командам cURL с их параметрами:
Это изображение выше сгенерировано Flux - модель текста в изображение.
Основное использование cURL
- Загрузить файл:
curl http://example.com/file.zip -o file.zip
- Загрузить несколько файлов:
curl -O URL1 -O URL2
- Следовать за перенаправлениями:
curl -L http://example.com/file
- Показать только заголовки:
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
Эта команда выводит шестнадцатеричный дамп всех входящих и исходящих данных, обеспечивая полный обзор всей коммуникации. -
Трассировка с отметками времени:
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
Эта команда использует заголовок Debug от 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Время поиска DNS:\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Время поиска DNS:\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 и скрипты, вы можете эффективно измерять и отслеживать производительность веб-сайтов, помогая вам выявлять потенциальные узкие места и оптимизировать время загрузки.