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

39

Quel serait le moyen le plus simple de soumettre une requête GET à une URL via HTTPS et d'obtenir une réponse brute et non analysée?

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

Gland
la source

Réponses:

51

Si vous voulez utiliser curl, cela devrait fonctionner:

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

Notez cependant qu'il ne s'agit pas exactement de la réponse brute. Par exemple, le codage de transfert en bloc ne sera pas visible dans la réponse. En --rawrésolvant cela, le mode verbose ( -v) est également utile et -iaffiche les en-têtes avant le corps de la réponse:

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

Si vous souhaitez utiliser un pageur comme less 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 poser un problème ou non.

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

Mika Fischer
la source
13

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
Patrick
la source
notez que certains serveurs (par exemple, github.com) ne fonctionnent qu'avecHTTP/1.0
Steven Penny le
4

Ce n'est pas le cas 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 }'
Chris Down
la source
Savez-vous si cela préserverait les \r\ncaractères de la réponse?
Acorn
@ Acorn - Tout d'abord, tous les serveurs Web ne répondront pas par \r\nune fin de ligne. Je ne crois pas que cela puisse le préserver, mais si cela vous importe, je vais ajouter un moyen d’obtenir ce résultat dans la réponse.
Chris Down
1
$ GET -e https://www.google.com

Les distributions Debian / Ubuntu font partie du paquet lwp-request.

funollet
la source