Der einfachste Weg, eine rohe, nicht analysierte HTTPS-Antwort zu erhalten

39

Was wäre der einfachste Weg, um eine GET-Anfrage über HTTPS an eine URL zu richten und die rohe, nicht analysierte Antwort zu erhalten?

Könnte dies mit Curl erreicht werden? Wenn ja, welche Optionen müssten Sie verwenden?

Eichel
quelle

Antworten:

51

Wenn Sie verwenden möchten curl, sollte dies funktionieren:

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

Beachten Sie jedoch, dass dies nicht genau die rohe Antwort ist. Beispielsweise wird die Chunked-Transfer-Codierung in der Antwort nicht angezeigt . Wenn Sie --rawdieses Problem lösen, ist auch verbose mode ( -v) nützlich und -izeigt die Überschriften vor dem Antworttext an:

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

Wenn Sie einen Pager wie less für das Ergebnis verwenden möchten, müssen Sie auch den Fortschrittsbalken ( -s) deaktivieren :

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

Je nachdem, was Sie tun möchten, kann dies ein Problem sein oder auch nicht.

Sie erhalten alle HTTP-Antwortheader und das Dokument unter der angeforderten URL.

Mika Fischer
quelle
13

Hier ist eine einfache Möglichkeit, die mir in den Sinn kommt

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

' | openssl s_client -quiet -connect google.com:443 2>/dev/null
Patrick
quelle
Beachten Sie, dass einige Server (z. B. github.com) nur mitHTTP/1.0
Steven Penny
4

Es ist nicht curl, aber es sollte auf fast allen Unices verfügbar sein:

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

Wenn Sie die Statusmeldungen stören:

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

Wenn Sie CRLF-Zeilenenden möchten:

wget -S --spider https://encrypted.site 2>&1 | awk '/^  / { sub(/$/,"\r"); print }'
Chris Down
quelle
Wissen Sie, ob dadurch die \r\nZeichen in der Antwort erhalten bleiben ?
Eichel
@Acorn - Zunächst werden nicht alle Webserver mit \r\neinem Zeilenende antworten . Ich glaube nicht, dass es dadurch in jedem Fall erhalten bleibt, aber wenn es Ihnen wichtig ist, füge ich einen Weg hinzu, dieses Ergebnis in die Antwort zu bringen.
Chris Down
1
$ GET -e https://www.google.com

Unter Debian / Ubuntu gehört Distribution zum Paket lwp-request.

funollet
quelle