#curl #http-headers #request #httprequest #echo
#curl #http-заголовки #запрос #httprequest #echo
Вопрос:
Возможно ли echo
, распечатать или просмотреть запрос, а не отправлять его с помощью инструмента командной строки curl? Что-то вроде -n
опции? Я хотел бы увидеть заголовок и тело запроса и все остальное, что включено. Есть ли что-нибудь еще, что отправляется помимо заголовка и тела?
Ответ №1:
HTTP-запрос создается из строки запроса, заголовков и тела.
у curl, похоже, нет флага для выполнения «пробного запуска». В зависимости от ваших потребностей, вы могли бы увидеть, что вы хотите, используя netcat в качестве прокси:
$ nc -l localhost 8000 amp;
[1] 3150
$ curl --proxy localhost:8000 --silent --max-time 1 http://www.stackoverflow.com
GET http://www.stackoverflow.com HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
Host: www.stackoverflow.com
Accept: */*
Proxy-Connection: Keep-Alive
[1] Done nc -l localhost 8000
Комментарии:
1. Как вы добились, чтобы netcat завершался чисто (
[1] Done
)? В моем тесте я обнаружил, что мне нужноCtrl-C
выйти из этого, затемfg
это, а затемCtrl-D
. Это работает, но кажется неуклюжим способом выхода из netcat.2. А — похоже, ключом был
--max-time 1
флаг для тайм-аута с--silent
для подавления сообщения о тайм-ауте. Я изначально опустил их оба.3. … конечно, это не будет работать с HTTPS, оно показывает только
CONNECT www.stackoverflow.com:443 HTTP/1.1
и прокси-соединение: Keep-Alive
Ответ №2:
Позвольте мне поддержать предложение использовать ‘nc’ (netcat), чтобы увидеть все детали, не отправляя ничего куда-либо извне.
Но вы также можете получить все подробности для любого запроса командной строки curl, используя команды —trace или —trace-ascii, которые могут выводить все входящие и исходящие данные и запросы для проверки.
Эти опции имеют дополнительное преимущество по сравнению с ‘nc’ в том, что они могут отображать детали протокола даже для операций HTTPS и с «настоящими» командными строками и т.д.
Комментарии:
1.
--trace -
для стандартного вывода.