A maneira mais simples de obter uma resposta HTTPS bruta e não analisada

35

Qual seria a maneira mais simples de fazer uma solicitação GET para um URL em HTTPS e obter a resposta não processada?

Isso poderia ser conseguido com o curl? Em caso afirmativo, quais opções você precisaria usar?

    
por Acorn 19.01.2012 / 00:30

4 respostas

45

Se você quiser 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 partes não será visível na resposta. Usando --raw resolve isso, também o modo detalhado ( -v ) é útil também e -i mostra os cabeçalhos antes do corpo da resposta:

curl -iv --raw https://www.google.com/

Se você quiser 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 na URL solicitada.

    
por 19.01.2012 / 10:22
10

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
    
por 19.01.2012 / 00:48
4

Não é curl , mas deve estar disponível em quase todos os Unices:

wget -S --spider https://encrypted.site

Se as mensagens de status incomodarem você:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  /'

Se você quiser finais de linha CRLF:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'
    
por 19.01.2012 / 00:50
1
$ GET -e https://www.google.com

Em distros Debian / Ubuntu pertence ao pacote lwp-request .

    
por 19.01.2012 / 19:17

Tags