Die Kommandozeile curl kann den Antwort-Header anzeigen, indem sie -D
Option, aber ich möchte sehen, welchen Request Header er sendet. Wie kann ich das tun?
Was ist, wenn ich das Paket nur zusammenstellen, aber nicht verschicken möchte?
Die Kommandozeile curl kann den Antwort-Header anzeigen, indem sie -D
Option, aber ich möchte sehen, welchen Request Header er sendet. Wie kann ich das tun?
Sich kringeln -v
o --verbose
zeigt unter anderem die HTTP-Anfrage-Header an. Hier ist ein Beispiel für die Ausgabe:
$ curl -v http://google.com/
* About to connect() to google.com port 80 (#0)
* Trying 66.102.7.104... connected
* Connected to google.com (66.102.7.104) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.16.4 (i386-apple-darwin9.0) libcurl/7.16.4 OpenSSL/0.9.7l zlib/1.2.3
> Host: google.com
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Location: http://www.google.com/
< Content-Type: text/html; charset=UTF-8
< Date: Thu, 15 Jul 2010 06:06:52 GMT
< Expires: Sat, 14 Aug 2010 06:06:52 GMT
< Cache-Control: public, max-age=2592000
< Server: gws
< Content-Length: 219
< X-XSS-Protection: 1; mode=block
<
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
* Connection #0 to host google.com left intact
* Closing connection #0
Eine beliebte Antwort für die Anzeige von Antwort Kopfzeilen, aber OP fragte nach Anfrage Kopfzeilen.
curl -s -D - -o /dev/null http://example.com
-s
: Fortschrittsbalken nicht mehr anzeigen-D -
: Kopfzeilen in eine Datei ausgeben, aber -
sendet es an stdout-o /dev/null
: Antwortkörper ignorierenDies ist besser als -I
denn es sendet keine HEAD
Anfrage, was zu unterschiedlichen Ergebnissen führen kann.
Es ist besser als -v
weil man nicht so viele Hacks braucht, um es zu ent-verbieren.
Ich glaube, der Befehlszeilenschalter, den Sie an curl übergeben müssen, lautet -I
.
Beispiel für die Verwendung:
$ curl -I http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287
HTTP/1.1 301 Moved Permanently
Date: Sat, 29 Dec 2012 15:22:05 GMT
Server: Apache
Location: http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287/
Content-Type: text/html; charset=iso-8859-1
Wenn Sie einen HTTP-Statuscode 301 als Antwort erhalten, können Sie auch eine -L
Argumentwechsel zu sagen curl
um URL-Weiterleitungen zu verfolgen, und in diesem Fall die Kopfzeilen aller Seiten (einschließlich der URL-Weiterleitungen) zu drucken, wie unten dargestellt:
$ curl -I -L http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287
HTTP/1.1 301 Moved Permanently
Date: Sat, 29 Dec 2012 15:22:13 GMT
Server: Apache
Location: http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287/
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 302 Found
Date: Sat, 29 Dec 2012 15:22:13 GMT
Server: Apache
Set-Cookie: UID=b8c37e33defde51cf91e1e03e51657da
Location: noaccess.php
Content-Type: text/html
HTTP/1.1 200 OK
Date: Sat, 29 Dec 2012 15:22:13 GMT
Server: Apache
Content-Type: text/html
El -I
zeigt die Option Antwort Kopfzeilen. Die Frage bezog sich auf die Anfrage Kopfzeilen.
El -I
Optionen veranlasst curl, eine HTTP HEAD
was die Antwort des Servers verändern könnte. Besser zu verwenden -v
Schalter, glaube ich.
Wenn Sie dies mit etwas anderem als einem HEAD
Anfrage (wie -X POST
) und erhalten "Sie können nur eine HTTP-Anfrage auswählen!" als stackoverflow.com/questions/286982/ wird Ihnen wahrscheinlich weiterhelfen. Die Sache ist die -I
macht eine HEAD
Anfrage, wie acw
angegeben und wenn Ihr curl
einen weiteren Aufruf einrichten, haben Sie zwei HTTP-Anfragen in curl
anrufen...
Mit dem folgenden Befehl erhalten Sie eine schöne Kopfzeilenausgabe:
curl -L -v -s -o /dev/null google.de
-L, --location
Umleitungen folgen-v, --verbose
mehr Ausgang, gibt die Richtung an-s, --silent
keinen Fortschrittsbalken anzeigen-o, --output /dev/null
empfangenen Körper nicht zeigenOder die kürzere Version:
curl -Lvso /dev/null google.de
Ergebnisse in:
* Rebuilt URL to: google.de/
* Trying 2a00:1450:4008:802::2003...
* Connected to google.de (2a00:1450:4008:802::2003) port 80 (#0)
> GET / HTTP/1.1
> Host: google.de
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Location: http://www.google.de/
< Content-Type: text/html; charset=UTF-8
< Date: Fri, 12 Aug 2016 15:45:36 GMT
< Expires: Sun, 11 Sep 2016 15:45:36 GMT
< Cache-Control: public, max-age=2592000
< Server: gws
< Content-Length: 218
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
<
* Ignoring the response-body
{ [218 bytes data]
* Connection #0 to host google.de left intact
* Issue another request to this URL: 'http://www.google.de/'
* Trying 2a00:1450:4008:800::2003...
* Connected to www.google.de (2a00:1450:4008:800::2003) port 80 (#1)
> GET / HTTP/1.1
> Host: www.google.de
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 12 Aug 2016 15:45:36 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< Content-Type: text/html; charset=ISO-8859-1
< P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Set-Cookie: NID=84=Z0WT_INFoDbf_0FIe_uHqzL9mf3DMSQs0mHyTEDAQOGY2sOrQaKVgN2domEw8frXvo4I3x3QVLqCH340HME3t1-6gNu8R-ArecuaneSURXNxSXYMhW2kBIE8Duty-_w7; expires=Sat, 11-Feb-2017 15:45:36 GMT; path=/; domain=.google.de; HttpOnly
< Accept-Ranges: none
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
<
{ [11080 bytes data]
* Connection #1 to host www.google.de left intact
Wie Sie sehen können curl
gibt sowohl die ausgehenden als auch die eingehenden Kopfzeilen aus und überspringt die Körperdaten, obwohl sie die Größe des Körpers angibt.
Zusätzlich wird für jede Zeile die Richtung angegeben, so dass sie leicht zu lesen ist. Ich fand es besonders nützlich, um lange Ketten von Weiterleitungen aufzuspüren.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
40 Stimmen
curl --head http://google.com
tut dasselbe wie die-I
Flagge :)16 Stimmen
Hinweis zur Verwendung
--head
/-I
: Nicht alle Server reagieren genau gleich aufHEAD
Anfragen (zum Beispiel,Content-Encoding
fehlen würde, wenn Sie versuchen würden, zu überprüfen, ob der Body gzipped ist) und nicht alle Server unterstützenHEAD
.-v
ist in der Regel die sicherere Wahl.5 Stimmen
Mögliches Duplikat von Wie kann ich die Anfrage-Header von curl sehen, wenn ich eine Anfrage an den Server sende?