web-dev-qa-db-fra.com

Le moyen le plus simple d'obtenir une réponse HTTPS brute et non analysée

Quelle serait la manière la plus simple de faire une demande GET à une URL via HTTPS et d'obtenir la réponse brute et non analysée?

Cela pourrait-il être réalisé avec curl? Si oui, quelles options devez-vous utiliser?

41
Acorn

Si vous souhaitez utiliser curl, cela devrait fonctionner:

curl -D - https://www.google.com/

Notez, cependant, que ce n'est pas exactement la réponse brute. Par exemple codage de transfert par blocs ne sera pas visible dans la réponse. En utilisant --raw résout ce problème, également en mode verbeux (-v) est également utile et -i affiche les en-têtes avant le corps de la réponse:

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

Si vous souhaitez utiliser un pager comme moins sur le résultat, il est également nécessaire de désactiver la barre de progression (-s):

curl -ivs --raw https://www.google.com/ | less

Selon ce que vous voulez faire, cela peut ou non être un problème.

Vous obtenez tous les en-têtes de réponse HTTP et le document à l'URL demandée.

55
Mika Fischer

Voici un moyen simple qui me vient à l'esprit

echo 'GET / HTTP/1.1
Host: google.com

' | openssl s_client -quiet -connect google.com:443 2>/dev/null
13
Patrick

Ce n'est pas curl, mais il devrait être disponible sur presque tous les Unices:

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

Si les messages d'état vous dérangent:

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

Si vous voulez des fins de ligne CRLF:

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

Sur Debian/Ubuntu, les distributions appartiennent au package lwp-request.

1
funollet