Curl Segui il reindirizzamento

Curl Segui il reindirizzamento
Curl è una potente utilità della linea di comando che facilita il trasferimento dei dati in una vasta gamma di protocolli, tra cui HTTP/HTTPS, FTP, GOPHER ed ECT.

Che si tratti di costruzione e debug di semplici richieste o API complesse, Curl è uno strumento eccellente nel tuo skillset.

Questo tutorial esplorerà il concetto di reindirizzamenti HTTP e come possiamo usare Curl per seguirli in una richiesta.

Cos'è un reindirizzamento HTTP?

Un reindirizzamento HTTP, comunemente noto come reindirizzamento, si riferisce a una tecnica in cui un determinato indirizzo restituisce un'istruzione di reindirizzamento invece di restituire la risorsa o il documento richiesto.

Fondamentalmente è quello che suggerisce il nome. Quando un client richiede una risorsa specifica, anziché il server che risponde con il risultato interrogato, dice al client di cercare la risorsa in una posizione diversa.

L'immagine sotto mostra un concetto di base di un reindirizzamento HTTP.

Fonte: Network Mozilla Developer.

Quello che segue è una semplice intestazione di reindirizzamento HTTP.

Http/1.1 301 spostato in modo permanente

Posizione: https: // linuxhint.com

Nell'esempio sopra, il server ci dice che l'indirizzo http: // linuxhint.COM si è spostato permanentemente su https: // linuxhint.com

Esistono due tipi principali di reindirizzamenti:

  1. Reindirizzamenti permanenti
  2. Reindirizzamenti temporanei

Reindirizzamenti permanenti

Questi sono i reindirizzamenti che durano e non sono validi per quella richiesta specifica. Un reindirizzamento permanente dice al cliente che la risorsa richiesta è stata permanentemente spostata su un nuovo indirizzo. Un reindirizzamento permanente è indicato dal codice di stato HTTP 301.

Reindirizzamenti temporanei

D'altra parte, i reindirizzamenti temporanei dicono al client che il server vorrebbe reindirizzare a una nuova risorsa. Tuttavia, questo reindirizzamento non è permanente e non dovrebbe memorizzare nella cache questo reindirizzamento. Ciò significa che il reindirizzamento non sarà lì in un momento successivo.

Questo tipo di reindirizzamento è indicato dal codice di stato HTTP 302.

Ora, abbiamo le basi dei reindirizzamenti HTTP, apprendiamo come dire a Curl di seguire una risposta di reindirizzamento.

Curl Segui il reindirizzamento

Curl consente di seguire un reindirizzamento utilizzando il flag -l. Questa bandiera deriva dall'intestazione della posizione in un'operazione di reindirizzamento.

La sintassi del comando è come mostrata:

$ CURL -L [URL]

Un esempio di un semplice reindirizzamento del ricciolo è come mostrato:

Curl -l http: // linuxhint.com

Curl set max reindirizza

Quando permetti a Curl di seguire i reindirizzamenti, può eseguire fino a 50 reindirizzamenti. Tuttavia, è possibile impostare un valore personalizzato per i reindirizzamenti utilizzando il parametro -max -redirs.

La sintassi è come mostrata:

$ CURL -L - -max -rediri [numero] [URL]

Ad esempio, per impostare un massimo di 5 reindirizzamenti, possiamo eseguire:

$ CURL -L -MAX -REDIRS 5 http: // linuxhint.com

Curl Abilita i reindirizzamenti infiniti

Non è dubbio che Curl tenterà di proteggerti dall'esecuzione di reindirizzamenti infiniti. Pertanto, se si effettua una richiesta che restituisce più di 20 reindirizzamenti, Curl annullerà automaticamente la richiesta.

Tuttavia, è possibile sovrascrivere questa opzione impostando il parametro -max -redirs su -1

La sintassi è come mostrata:

$ CURL -L - -Max -redirs -1 [URL]

Curl Prevenire la conversione del metodo HTTP

Se si verifica un reindirizzamento quando si effettua una richiesta di posta HTTP, Curl convertirà invece la richiesta in una richiesta GET.

Tuttavia, è possibile impedire a Curl di convertire un post per ottenere quando incontra un reindirizzamento 301, 302 e 303 usando il parametro -Post [STATT_CODE].

La sintassi è mostrata:

$ CURL -L -Post [STATE_CODE] [URL]

Ad esempio, per impedire a Curl di convertirsi per ottenere quando incontra un reindirizzamento 301:

$ CURL -L - -Post301 [URL]

Curl Autentica Reindirizzamento

Potrebbe essere necessario fornire credenziali di autenticazione quando si effettua una richiesta. Tuttavia, se Curl incontra un reindirizzamento, impedirà di inviare le credenziali per motivi di sicurezza.

È possibile prevalere impostando il parametro -location -trust.

La sintassi è come mostrata:

$ CURL -L - -Location -Trusted -User "Utente: Password"

Conclusione

Usando questo tutorial, abbiamo scoperto come eseguire operazioni di reindirizzamento usando Curl. Abbiamo coperto concetti come seguire un semplice reindirizzamento, impostando il numero di reindirizzamenti, reindirizzamenti infiniti e l'autenticazione arricciata in un reindirizzamento.