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?
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.
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
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 }'
$ GET -e https://www.google.com
Sur Debian/Ubuntu, les distributions appartiennent au package lwp-request
.