Expertus metuit
Пользуемся curl для отладки HTTP
Опубликовано 2013-12-16 в 21:37

Как использовать curl для отладки HTTP, то есть для отправки на сервер HTTP-запросов. У меня потребности небольшие, поэтому здесь только конкретно нужные мне команды. Оформлено всё традиционно: описание задачи, решение, описание решения.

Отправить GET-запрос и показать ответ вместе с заголовками

curl -Gi http://google.com

Опция -G указывает использовать HTTP GET, опция -i — включить заголовки в вывод.

Отправить GET-запрос, показать только полученные заголовки

curl -X GET -I http://google.com

Опция -X GET указывает, какой именно запрос отправлять (по умолчанию отправляется HEAD), опция -I указывает, что нужно только заголовки получить.

Отправить POST-запрос и передать сырые данные

curl -X POST -d 'RAW-DATA_HERE' http://google.com

Или с данными из файла data.txt

curl -X POST -d @data.txt http://google.com

Отправить HEAD-запрос и посмотреть ответ

curl -I http://google.com

Здесь всё просто, поскольку в ответе на HTTP HEAD приезжают только заголовки.

Показать отправляемые заголовки GET-запроса

curl -v -o /dev/null -s -G http://google.com

Примерно в таком стиле, вывод, к сожалению, не самый вменяемый. Опция -v включает «подробный» режим, опция -o /dev/null отправляет вывод результата (то есть тело ответа) в /dev/null, опция -s включает «тихий» режим без показа прогрессбара, а опция -G означает, что нужно отправить именно HTTP GET-запрос, если вместо -G указать -I, то будет отправлен HTTP HEAD-запрос.

Трассировка запроса

curl --trace-ascii - http://google.com

Тут особых комментариев не нужно, вывод будет содержать детальную информацию обо всех отправленных и принятых данных

Загрузка файла на сервер

Загрузка на сервер файла /tmp/filename.data в параметре с именем file в POST-запросе.

curl -F 'file=@/tmp/filename.data'

Можно больше деталей запроса увидеть, если указать параметр -v:

curl -v -F 'file=@/tmp/filename.data'

Комментарии

Гость: Саша | 2016-09-16 в 14:17

В последних версиях cURL: -v/--verbose overrides an earlier trace/verbose option

... и большое спаибо за блог.

Гость: Илья | 2017-05-10 в 21:22

А как проще всего узнать какие параметры запрашивает страничка что указать их в курле?

Текст комментария (допустимая разметка: *курсив*, **полужирная**, [ссылка](http://example.com) или <http://example.com>) Посетители-анонимы, обратите внимение, что более чем одна гиперссылка в тексте (включая оную из поля «веб-сайт») приведёт к блокировке комментария для модерации. Зайдите на сайта с использованием аккаунта на twitter, например, чтобы посылать комментарии без этого ограничения.
Имя (обязательно, 50 символов или меньше)
Опциональный email, на который получать ответы (не будет опубликован)
Веб-сайт
© 2006—2024 Sergey Stolyarov | Работает на pyrengine