Qual seria a maneira mais direta de fazer uma solicitação GET para um URL por HTTPS e obter a resposta bruta e não analisada?
Isso poderia ser alcançado com o curl? Se sim, quais opções você precisaria usar?
Se você deseja usar curl
, isso deve funcionar:
curl -D - https://www.google.com/
Observe, no entanto, que essa não é exatamente a resposta bruta. Por exemplo, a codificação de transferência em pedaços não será visível na resposta. Usando --raw
resolve isso, também o modo detalhado ( -v
) também é útil e -i
mostra os cabeçalhos antes do corpo da resposta:
curl -iv --raw https://www.google.com/
Se você deseja usar um pager como menos no resultado, também é necessário desativar a barra de progresso ( -s
):
curl -ivs --raw https://www.google.com/ | less
Dependendo do que você deseja fazer, isso pode ou não ser um problema.
O que você recebe são todos os cabeçalhos de resposta HTTP e o documento no URL solicitado.
Aqui está uma maneira simples que vem à mente
echo 'GET / HTTP/1.1
Host: google.com
' | openssl s_client -quiet -connect google.com:443 2>/dev/null
HTTP/1.0
Não é
curl
, mas deve estar disponível em quase todos os Unices:Se as mensagens de status o incomodarem:
Se você deseja finais de linha CRLF:
fonte
\r\n
caracteres na resposta?\r\n
como um final de linha. Não acredito que isso seja preservado em nenhum caso, mas se isso for importante para você, adicionarei uma maneira de obter esse resultado na resposta.No Debian / Ubuntu, as distros pertencem ao pacote
lwp-request
.fonte