Curl Suivre la redirection

Curl Suivre la redirection
Curl est un puissant utilitaire de ligne de commande qui facilite le transfert de données sur une large gamme de protocoles, y compris HTTP / HTTPS, FTP, GOPHER, etc.

Que ce soit la construction et le débogage de demandes simples ou des API complexes, Curl est un excellent outil dans vos compétences.

Ce tutoriel explorera le concept de redirections HTTP et comment nous pouvons utiliser Curl pour les suivre dans une demande.

Qu'est-ce qu'une redirection HTTP?

Une redirection HTTP, communément appelée redirection, fait référence à une technique où une adresse donnée renvoie une instruction de redirection au lieu de redonner la ressource ou le document demandé.

C'est essentiellement ce que le nom suggère. Lorsqu'un client demande une ressource spécifique, au lieu que le serveur réponde avec le résultat interrogé, il dit au client de rechercher la ressource à un endroit différent.

L'image ci-dessous montre un concept de base d'une redirection HTTP.

Source: Mozilla Developer Network.

Ce qui suit est un en-tête de redirection HTTP simple.

Http / 1.1 301 déplacé de façon permanente

Emplacement: https: // linuxhint.com

Dans l'exemple ci-dessus, le serveur nous dit que l'adresse http: // linuxhint.com a déménagé en permanence sur https: // Linuxhint.com

Il existe deux principaux types de redirections:

  1. Redirection permanente
  2. Redirection temporaire

Redirection permanente

Ce sont les redirectes qui durent et ne sont pas valables pour cette demande spécifique. Une redirection permanente indique au client que la ressource demandée a définitivement transféré à une nouvelle adresse. Une redirection permanente est désignée par le code d'état HTTP 301.

Redirection temporaire

D'un autre côté, les redirections temporaires indiquent au client que le serveur souhaite rediriger vers une nouvelle ressource. Cependant, cette redirection n'est pas permanente et ne doit pas mettre en cache cette redirection. Cela signifie que la redirection ne sera pas là plus tard.

Ce type de redirection est indiqué par le code d'état HTTP 302.

Maintenant, nous avons les bases des redirections HTTP, apprenons à dire à dire à Curl de suivre une réponse de redirection.

Curl Suivre la redirection

Curl vous permet de suivre une redirection en utilisant le drapeau -l. Ce drapeau est dérivé de l'en-tête de localisation dans une opération de redirection.

La syntaxe de commande est comme indiqué:

$ curl -l [url]

Un exemple de redirection de boucle simple est comme indiqué:

curl -l http: // linuxhint.com

Curl Set MAX Redirection

Lorsque vous permettez à Curl de suivre les redirectes, il peut effectuer jusqu'à 50 redirections. Cependant, vous pouvez définir une valeur personnalisée pour les redirectes en utilisant le paramètre -max-redirs.

La syntaxe est comme indiqué:

$ curl -l --max-redirs [numéro] [url]

Par exemple, pour définir un maximum de 5 redirections, nous pouvons courir:

$ curl -l --max-redirs 5 http: // linuxhint.com

Curl Activer les redirections infinies

Il ne fait aucun doute que Curl tentera de vous protéger de l'exécution de redirections infinies. Par conséquent, si vous faites une demande qui renvoie plus de 20 redirections, Curl annulera automatiquement la demande.

Cependant, vous pouvez remplacer cette option en définissant le paramètre -max-redirs à -1

La syntaxe est comme indiqué:

$ curl -l --max-redirs -1 [url]

Curl Empêcher la conversion de la méthode HTTP

Si vous rencontrez une redirection lors de la demande de poste HTTP, Curl convertira la demande en une demande GET à la place.

Cependant, vous pouvez empêcher Curl de convertir un post pour obtenir lorsqu'il rencontre un redirection 301, 302 et 303 en utilisant le paramètre -post [statut_code].

La syntaxe est montrée:

$ curl -l --sost [status_code] [url]

Par exemple, pour éviter que Curl ne convertisse pour obtenir lorsqu'il rencontre une redirection 301:

$ curl -l --post301 [url]

boucler l'authentification de la redirection

Vous devrez peut-être fournir des informations d'identification Auth lors de la demande. Cependant, si Curl rencontre une redirection, cela empêchera d'envoyer les informations d'identification pour des raisons de sécurité.

Vous pouvez remplacer cela en définissant le paramètre -Location-Trust.

La syntaxe est comme indiqué:

$ curl -l - location-trust - utilisateur "utilisateur: mot de passe"

Conclusion

En utilisant ce tutoriel, nous avons découvert comment effectuer des opérations de redirection à l'aide de Curl. Nous avons couvert des concepts tels que le suivi d'une simple redirection, la définition du nombre de redirections, les redirections infinies et la boucle d'authentification dans une redirection.