Expertus metuit
Пользуемся curl для отладки HTTP
2013-12-16 21:37
Теги: linux, macosx, kb

Как использовать 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 указывает, что нужно только заголовки получить.

Отправить 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 в 13:17

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

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

Илья | 2017-05-10 в 20:22

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

Текст комментария (разметка: *курсив*, **полужирная**, [ссылка](http://example.com) или <http://example.com> ещё)
Имя (обязательно, 50 символов или меньше)
Email, на который получать ответы (не будет опубликован)
Веб-сайт
© 2006—2016 Sergey Stolyarov | Работает на Pyrone