In diesem Tutorial wird besprochen, wie Sie mit HTTP -Headern mit Curl arbeiten können.
Was ist ein HTTP -Header??
Ein HTTP -Header bezieht sich auf ein Feld in der HTTP -Anforderung oder Antwort, um die Übergabe zusätzlicher Informationen wie Metadaten zur Anforderung oder Antwort zu aktivieren.
Mit HTTP -Headern können ein Client und ein Server zusätzliche Informationen innerhalb einer bestimmten Anforderung oder Antwort austauschen. Der Header besteht aus einem Fall-sensitiven Namen, einem Dickdarm und dem Wert.
Die Syntax ist wie gezeigt:
Headername: Wert
"akzeptieren": "*/*",
"Host": "Echo.Hoppscotch.io ",
"Benutzer-Agent": "-O",
"X-Country": "wir",
"X-Forward-for": "41.90.68.25, 100.64.0.127 ",
"X-Forwarded-Proto": "Https",
"X-NF-Client-Connection-IP": "172.122.12.122 ",
"X-NF-Request-ID": "01G48DEPNS1QZF8BZ7YS27HZ93"
Lassen Sie uns lernen, wie wir mit HTTP -Headern mit Curl arbeiten können.
Curl installieren
In den meisten Systemen werden häufig Curl installiert. Wenn nicht, können Sie es über den Paketmanager Ihres Systems installieren.
Debian
$ sudo apt-Get-Update
$ sudo apt-get curl installieren
Rehl
$ sudo yum Update
$ sudo yum install curl
Manjaro/Arch
$ sudo pacman -Sy
$ sudo pacman -s curl
curl rohe Nachricht anzeigen
Um eine rohe Nachricht in einer Curl -Anforderung anzuzeigen, verwenden wir das -V -Flag oder -Verbose. Mit der Option können wir detaillierte Informationen zur Anfrage, einschließlich des Handshake -Vorgangs, anzeigen.
$ curl -v https: // echo.Hoppscotch.io
Versuchen 18.192.76.182: 443…
* Mit Echo verbunden.Hoppscotch.IO (18.192.76.182) Port 443 (#0)
* ALPN, der H2 anbietet
* ALPN, der HTTP/1 bietet.1
* CAFILE:/etc/ssl/certs/ca-zertifikate.crt
* Capath:/etc/ssl/certs
* SSL -Verbindung mit TLSV1.3 / tls_aes_128_gcm_sha256
* ALPN, Server akzeptiert, um H2 zu verwenden
* Serverzertifikat:
* Betreff: cn =*.Hoppscotch.io
* Startdatum: 26. Mai 06:07:56 2022 GMT
* Ablauf Datum: 24. August 06:07:55 2022 GMT
* SubjektALTNAME: Host "Echo.Hoppscotch.IO "Matched Cert's"*.Hoppscotch.io "
* Emittent: C = US; O = lass uns verschlüsseln; CN = R3
* SSL -Zertifikat überprüfen Sie OK.
* Mit HTTP2 unterstützt Server Multiplexing
* Verbindungszustand geändert (HTTP/2 bestätigt)
* Kopieren von HTTP/2 -Daten im Stream -Puffer zu Verbindungspuffer nach dem Upgrade: Len = 0
* Verwenden von Stream ID: 1 (einfaches Handle 0x55b037e12100)
> Get / http / 2
> Host: Echo.Hoppscotch.io
> Benutzer-Agent: Curl/7.81.0
> Akzeptieren: */ *
>
* Verbindungszustand geändert (max_concurrent_streams == 250)!
< HTTP/2 200
< access-control-allow-credentials: true
< access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept
< access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD
< access-control-allow-origin: *
< age: 0
< cache-control: no-cache
< content-type: application/json
< date: Mon, 30 May 2022 20:52:52 GMT
< server: Netlify
< x-nf-request-id: 01G4BBWCR3VP8TV4HEJD0QG375
< content-length: 409
<
* Tlsv1.2 (in), TLS -Header, ergänzende Daten (23):
"Methode": "Get",
"Args": ,
"Daten": "",
"Header":
"akzeptieren": "*/*",
"Host": "Echo.Hoppscotch.io ",
"Benutzer-Agent": "Curl/7.81.0 ",
"X-Country": "Ke",
"X-Forward-for": "41.90.68.25, 100.64.0.210 ",
"X-Forwarded-Proto": "Https",
"X-NF-Client-Connection-IP": "41.90.68.25 ",
"X-NF-Request-ID": "01G4BBWCR3VP8TV4HEJD0QG375"
,
"Weg": "/",
"ISBase64Encoded": Falsch
* Verbindung #0 zum Host -Echo.Hoppscotch.IO ließ intakt
Aus der obigen Ausgabe können wir sehen, wie die Anforderung vom Server verarbeitet wird, beginnend mit dem Serverhandshake.
Der ausführliche Modus ist vorteilhaft beim Debugieren oder Finden von Missverständnissen auf dem Server.
Curl zeigen nur Header
Um die gesamte Ausgabe zu unterdrücken und nur die Header anzuzeigen, können wir das Kopfflag wie gezeigt verwenden:
$ curl - -Head https: // echo.Hoppscotch.io
Http/2 200
Access-Control-Allow-Credentials: TRUE
Access-Control-Allow-Header: Origin, X-Requested-with, Content-Typ, Akzeptieren
Access-Control-Allow-Methoden: Get, Post, Put, Patch, Löschen, Optionen, Kopf
Access-Control-Allow-Origin: *
Alter: 0
Cache-Control: No-Cache
Inhaltstyp: Anwendung/JSON
Datum: Mon, 30. Mai 2022 20:56:26 GMT
Server: netlify
X-NF-Request-ID: 01G4BC2XH5PMYM2CW57PJV2R1X
Inhaltslänge: 408
Der Befehl sollte nur die Antwortheader zurückgeben, wie in der obigen Ausgabe gezeigt.
Sie können den -o auch hinzufügen, gefolgt vom Zielpfad, um die Ausgabe abzugeben. Wenn Ihr Link beispielsweise eine Reihe von HTML zurückgibt, können Sie die Ausgabe in Dev/Null wie gezeigt umleiten:
$ curl -vs -o/dev/null https: // linuxHint.com
Der Befehl sollte die Ausgabe zu /dev /null umleiten.
Curl Pass Custom Headers
Wenn Sie eine HTTP -Anfrage stellen, müssen Sie möglicherweise benutzerdefinierte Header mit Curl übergeben. Sie können die Flagge -H -Flagge verwenden, gefolgt vom Header und dem Wert.
Betrachten Sie die unten gezeigte Syntax:
curl -h 'Header: Wert' http: // Beispiel.com
Zum Beispiel:
$ curl -h 'Akzeptierte Sprache: en-us' https: // echo.Hoppscotch.io
"Methode": "Get",
"Args": ,
"Daten": "",
"Header":
"akzeptieren": "*/*",
"Akzeptierte Sprache": "En-us",
"Host": "Echo.Hoppscotch.io ",
"Benutzer-Agent": "Curl/7.81.0 ",
"X-Country": "Ke",
"X-Forward-for": "41.90.68.25, 100.64.0.210 ",
"X-Forwarded-Proto": "Https",
"X-NF-Client-Connection-IP": "41.90.68.25 ",
"X-NF-Request-ID": "01G4BCGJYJ46YT05MVE7WTAYZT"
,
"Weg": "/",
"ISBase64Encoded": Falsch
Wir übergeben den akzeptierten Kopfball mit dem Wert en-us in der obigen Anfrage an die Ziel-URL.
Locken fügen mehrere Header hinzu
Um mehrere Header zu übergeben, können Sie das Flag -H -Flag zu verschiedenen Zeiten geben, wie in der folgenden Syntax gezeigt:
$ curl -h 'Header: Wert' -h 'Header: Wert' http: // Beispiel.com
Zum Beispiel:
$ curl -h 'Akzeptierte Sprache: en-us' -h 'X-Country: US' https: // echo.Hoppscotch.io
Sie können den festgelegten Wert in den resultierenden Headern wie gezeigt überprüfen:
Curl Pass leerer Kopfball
Sie können einen leeren Header mit der folgenden Syntax übergeben:
$ curl -h 'Header;' http: // Beispiel.com
Zum Beispiel:
curl -h 'akzeptierte Sprache;' https: // echo.Hoppscotch.io
Die resultierende Ausgabe ist wie gezeigt:
Beachten Sie, dass der Wert für den angegebenen Header leer ist.
In diesem Artikel wurden verschiedene Methoden und Techniken zur Verwendung von Header in Curl erörtert. Mit diesem Tutorial verstehen Sie, wie Sie Header in einer Anfrage anzeigen, einzelne oder mehrere Header senden und schließlich leere Header senden.