cURL Справочник

Полезные команды 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 для отладки:

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

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

  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 Эта команда использует заголовок Debug от 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Время поиска 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 и скрипты, вы можете эффективно измерять и отслеживать производительность веб-сайтов, помогая вам выявлять потенциальные узкие места и оптимизировать время загрузки.

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