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?
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 --raw
résolvant cela, le mode verbose ( -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 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.
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
HTTP/1.0
Ce n'est pas le cas
curl
, mais il devrait être disponible sur presque tous les Unices:Si les messages d'état vous dérangent:
Si vous voulez des fins de ligne CRLF:
la source
\r\n
caractères de la réponse?\r\n
une 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.Les distributions Debian / Ubuntu font partie du paquet
lwp-request
.la source