Come inviare intestazioni HTTP con cURL

Puoi modificare e inviare intestazioni di richiesta HTTP utilizzando cURL. Per scoprire come farlo, entra ora e leggi l’articolo qui sotto su come inviare intestazioni HTTP con cURL.

Come inviare intestazioni HTTP con cURL

Lo strumento cURL sembra semplice a molti, ma in realtà è uno degli strumenti più potenti mai creati, poiché funge da motore di trasferimento dati Internet di oltre 20 milioni di dispositivi e software. Se usi Internet, stai sicuramente usando questa tecnologia. È interessante notare che è disponibile come strumento da riga di comando. Ed è per questo che molti ne sottovalutano le capacità. Come con altri strumenti per l’invio di richieste web, cURL invia intestazioni HTTP come fa il tuo browser ogni volta che vengono inviate richieste web.

Invia intestazioni HTTP con una stringa dell’agente utente per indicare al target che è un client cURL, lo invia con un’intestazione Accept per indicare al target il tipo di contenuto che accetta come risposta e invia il nome host del target. È interessante notare che questi valori inviati non sono scritti sulle pietre: possono essere sovrascritti e modificati. Puoi anche aggiungere nuove intestazioni HTTP a seconda del tipo di richieste che desideri inviare. In questo articolo ti mostrerò come inviare intestazioni HTTP e anche modificarle utilizzando cURL.


Lo strumento cURL, come affermato nella sezione introduttiva, invia anche intestazioni insieme alle richieste. Senza inviare intestazioni HTTP, la maggior parte dei server Web non risponderà con un codice di stato 200 ma restituirà invece un errore. Per impostazione predefinita, le intestazioni HTTP vengono inviate per utilizzare i dettagli reali di cURL. Attualmente, ci sono 3 principali intestazioni HTTP inviate da cURL. Ciò include Host, User-Agent e Accetta. Di seguito sono riportati i valori specifici delle intestazioni HTTP.

> GET / HTTP/1.1

> Host: google.com

> User-Agent: curl/7.87.0

> Accept: */*

Quanto sopra sono le intestazioni HTTP predefinite che cURL invierà se invii una richiesta a Google. Come puoi vedere, la stringa User-Agent è “curl/7.87.0”, che indica a Google o al suo target che il client è cURL e la sua versione specifica. Il “*/*” per l’intestazione Accetta indica all’host di destinazione che cURL accetta tutti i tipi di dati di risposta.

Ora, le 3 sopra riportate sono le intestazioni HTTP di richiesta popolari e predefinite inviate per tutti i tipi di richieste. Tuttavia, esistono altre intestazioni predefinite inviate a seconda del metodo di richiesta. Se invii una richiesta POST con dati, il valore è l’intestazione “Content-Type” con il tipo di contenuto inviato.

E ricorda, questi vengono inviati per impostazione predefinita, non è necessario inviarli esplicitamente. Ma se hai bisogno di modificarli, cosa che dovrai fare nella maggior parte delle tue richieste, allora dovrai inviarli esplicitamente. Di seguito è riportato come inviarli.


Come modificare e inviare intestazioni HTTP

Modifica e invia intestazioni HTTP

Se non invii esplicitamente le intestazioni HTTP, cURL le invierà per te e utilizzerà i valori predefiniti menzionati sopra. Anche se questo non è male, ti rende difficile testare le cose. E in alcune situazioni le tue richieste verrebbero addirittura respinte. Se vuoi imitare determinati user agent o inviare intestazioni personalizzate, devi dichiararle esplicitamente. In questa sezione ti verrà mostrato come inviare intestazioni HTTP utilizzando cURL.

Esistono due modi per inviare intestazioni HTTP: inviarle in linea oppure salvarle in un file e dichiarare il file. In entrambi i metodi, è necessario utilizzare il file – H tag, che è il tag di intestazione.


Di seguito è riportato un comando di esempio per l’invio di intestazioni.

curl -H "User-Agent: Mozilla/5.0" -H "Cookie: name=value" https://www.example.com

Come puoi vedere sopra, sono definite due intestazioni: User-Agent e Cookie. Ognuno ha il proprio flag —H. Dopo ciascuno dei flag, l’intestazione viene definita utilizzando il formato “Nome-intestazione: Valore”.

All’inizio sembra semplice e buono. Ma se devi inviare più intestazioni, può essere difficile da gestire. Questo ci porta al metodo successivo di invio di intestazioni.


Il metodo più semplice per inviare intestazioni HTTP è utilizzare un file txt. Dovresti creare un file txt denominato header.txt. ogni riga dovrebbe contenere un’intestazione e il suo valore. Esempio: agente utente: Mozilla/5.0.

Una volta terminato, puoi utilizzare il comando seguente per inviare la richiesta con le intestazioni.

curl -H "@headers.txt" https://www.example.com

Domande frequenti

Sì, lo strumento da riga di comando o la libreria cURL viene fornito con il supporto per le richieste HTTP poiché sono una parte importante di una richiesta web. Come con altri client Web, sono presenti intestazioni e valori predefiniti a seconda del metodo di richiesta utilizzato. Se non invii una richiesta con intestazioni dichiarate esplicitamente, lo strumento utilizzerà le intestazioni e i valori predefiniti per il metodo di richiesta specifico. È consigliabile inviare HTTP, soprattutto se si desidera imitare un client utente diverso.

D. È possibile modificare la stringa agente utente cURL?

La stringa dell’agente utente di cURL è curl/7.87.0, con il numero di versione che cambia a seconda della versione di cURL utilizzata. L’intestazione dell’agente utente è solo una delle numerose intestazioni che possono essere impostate e modificate. Utilizzando il tag —H e quindi personalizzando l’intestazione User-Agent, puoi modificare l’intestazione. È interessante notare che, se modificato, non apparirà più al tuo target come se stessi utilizzando lo strumento cURL.


Conclusione

Da quanto sopra, puoi vedere quanto sia facile inviare richieste HTTP e modificare le intestazioni per adattarle al tipo di richieste che desideri inviare. Questa è una delle funzionalità che rendono cURL uno strumento potente: la possibilità di personalizzarlo nel modo desiderato. Se non sei a conoscenza delle intestazioni specifiche da inviare e dei valori corrispondenti per la richiesta che devi inviare, dovresti utilizzare la scheda rete nello strumento di sviluppo del tuo browser per trovare queste informazioni.