Curl Headers

Curl Headers
Curl è uno degli strumenti più utili quando si lavora con il trasferimento di dati URL. È un'utilità semplicistica ma potente della linea di comando che facilita il trasferimento dei dati di dati su una rete.

Questo tutorial discuterà di come puoi lavorare con le intestazioni HTTP usando Curl.

Cos'è un'intestazione HTTP?

Un'intestazione HTTP si riferisce a un campo nella richiesta o nella risposta HTTP per consentire il passaggio di ulteriori informazioni, come i metadati sulla richiesta o sulla risposta.

Le intestazioni HTTP consentono a un client e un server di scambiare ulteriori informazioni all'interno di una richiesta o risposta specifica. L'intestazione è composta da un nome sensibile al caso, un colon e il valore.

La sua sintassi è come mostrato:

Intestazione: valore
"Accetta": "*/*",
"host": "Echo.hopscotch.io ",
"Utente-agente": "-O",
"X-Country": "Us",
"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"

Impariamo come possiamo lavorare con le intestazioni HTTP usando Curl.

Installazione del ricciolo

Troverai spesso Curl installato sulla maggior parte dei sistemi. Tuttavia, in caso contrario, puoi installarlo tramite il gestore dei pacchetti del sistema.

Debian

$ sudo apt-get update
$ sudo apt-get Installa Curl

Rehl

$ sudo yum aggiornamento
$ sudo yum installa riccio

Manjaro/Arch

$ sudo pacman -sy
$ sudo pacman -s curl

Curl Visualizza il messaggio RAW

Per visualizzare un messaggio grezzo in una richiesta di ricci, utilizziamo il flag o -verbose. L'opzione ci consente di mostrare informazioni dettagliate sulla richiesta, incluso il processo di handshake.

$ CURL -V https: // echo.hopscotch.io
Provando 18.192.76.182: 443 ..
* Collegato all'eco.hopscotch.io (18.192.76.182) Porta 443 (#0)
* Alpn, offrendo H2
* Alpn, offrendo http/1.1
* Cafile:/etc/ssl/certi/certificati CA.Crt
* Capath:/etc/ssl/certs
* Connessione SSL utilizzando TLSV1.3 / tls_aes_128_gcm_sha256
* Alpn, server accettato per utilizzare H2
* Certificato del server:
* Oggetto: cn =*.hopscotch.io
* Data di inizio: 26 maggio 06:07:56 2022 GMT
* Scadenza Data: 24 agosto 06:07:55 2022 GMT
* soggettoltname: host "eco.hopscotch.io "abbinata cert"*.hopscotch.io "
* Emittente: C = US; O = crittografiamo; Cn = R3
* Certificato SSL Verifica OK.
* Utilizzando HTTP2, il server supporta il multiplexing
* Stato di connessione modificato (HTTP/2 confermato)
* Copia dei dati HTTP/2 nel buffer di flusso in buffer di connessione dopo l'aggiornamento: len = 0
* Utilizzo dell'ID flusso: 1 (Easy Handle 0x55B037E12100)
> Get / http / 2
> Host: eco.hopscotch.io
> Agent utente: Curl/7.81.0
> Accetta: */ *
>
* Stato di connessione modificato (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), intestazione TLS, dati supplementari (23):

"Metodo": "get",
"Args": ,
"dati": "",
"intestazioni":
"Accetta": "*/*",
"host": "Echo.hopscotch.io ",
"Utente-agente": "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"
,
"sentiero": "/",
"isbase64encoded": false
* Connessione #0 all'eco dell'ospite.hopscotch.Io ha lasciato intatto

Dall'output di cui sopra, possiamo vedere come la richiesta viene elaborata dal server, a partire dalla stretta di mano del server.

La modalità verbosa è vantaggiosa durante il debug o la ricerca di eventuali configurazioni nel server.

Curl Show Testes

Per sopprimere tutta l'uscita e mostrare solo le intestazioni, possiamo usare il flag di testa come mostrato:

$ CURL -HEAD https: // echo.hopscotch.io
Http/2 200
Access-Control-Alow-Credentials: True
Access-Control-Alow-Headers: Origin, X-richiede con contenuto, accetta, accetta
Access-Control-Gallow-Metodi: Get, Post, Put, Patch, Elimina, Opzioni, Head
Access-Control-Alow-Origin: *
Età: 0
Cache-Control: NO-Cache
Content-Type: Application/JSON
Data: lun, 30 maggio 2022 20:56:26 GMT
Server: netlify
X-NF-Request-ID: 01G4BC2XH5PBYM2CW57PJV2R1X
Lunghezza del contenuto: 408

Il comando dovrebbe restituire solo le intestazioni di risposta, come mostrato nell'output sopra.

È inoltre possibile aggiungere il -o seguito dal percorso target per scaricare l'output. Ad esempio, se il collegamento restituisce un mucchio di HTML, è possibile reindirizzare l'output su Dev/Null come mostrato:

$ curl -vs -o/dev/null https: // linuxhint.com

Il comando dovrebbe reindirizzare l'output su /dev /null.

CURL PASS WEADERS Custom

Se si effettua una richiesta HTTP, potrebbe essere necessario passare intestazioni personalizzate utilizzando Curl. È possibile utilizzare il flag -h seguito dall'intestazione e dal valore.

Considera la sintassi mostrata di seguito:

Curl -H 'Intestazione: Value' http: // Esempio.com

Per esempio:

$ CURL -H 'Language accettato: en-us' https: // echo.hopscotch.io

"Metodo": "get",
"Args": ,
"dati": "",
"intestazioni":
"Accetta": "*/*",
"Linguaggio accettato": "En-us",
"host": "Echo.hopscotch.io ",
"Utente-agente": "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"
,
"sentiero": "/",
"isbase64encoded": false

Passiamo l'intestazione in lingua accettata con il valore EN-USA all'URL di destinazione nella richiesta sopra.

Curl Aggiungi più intestazioni

Per passare più intestazioni, puoi dare il flag -h varie volte, come mostrato nella sintassi seguente:

$ curl -h 'header: value' -h 'header: value' http: // esempio.com

Per esempio:

$ CURL -H 'Language accettato: en-us' -H 'x-country: us' https: // echo.hopscotch.io

È possibile verificare il valore impostato nelle intestazioni risultanti come mostrato:

Curl Pass Empty Weader

È possibile passare un'intestazione vuota usando la sintassi di seguito:

$ Curl -h 'header;' http: // esempio.com

Per esempio:

Curl -h 'accettata in lingua;' https: // echo.hopscotch.io

L'output risultante è come mostrato:

Nota Il valore per l'intestazione specificata è vuoto.

Conclusione

Questo articolo ha discusso di vari metodi e tecniche di utilizzo delle intestazioni in Curl. Usando questo tutorial, capisci come visualizzare le intestazioni in una richiesta, inviare intestazioni singole o più e, infine, inviare intestazioni vuote.