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:
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.