Curl Siga o redirecionamento

Curl Siga o redirecionamento
O CURL é um poderoso utilitário de linha de comando que facilita a transferência de dados em uma ampla gama de protocolos, incluindo HTTP/HTTPS, FTP, Gopher e etc.

Seja construindo e depurando solicitações simples ou APIs complexas, o CURL é uma excelente ferramenta em seu conjunto de habilidades.

Este tutorial explorará o conceito de redirecionamentos de HTTP e como podemos usar o CURL para segui -los em um pedido.

O que é um redirecionamento HTTP?

Um redirecionamento HTTP, comumente conhecido como redirecionamento, refere -se a uma técnica em que um determinado endereço retorna uma instrução de redirecionamento em vez de devolver o recurso ou documento solicitado.

É basicamente o que o nome sugere. Quando um cliente solicita um recurso específico, em vez de o servidor responder com o resultado consultado, ele diz ao cliente para procurar o recurso em um local diferente.

A imagem abaixo mostra um conceito básico de redirecionamento HTTP.

Fonte: Rede de desenvolvedores Mozilla.

A seguir é um cabeçalho de redirecionamento HTTP simples.

Http/1.1 301 movido permanentemente

Localização: https: // linuxhint.com

No exemplo acima, o servidor nos diz que o endereço http: // linuxhint.com mudou permanentemente para https: // linuxhint.com

Existem dois tipos principais de redirecionamentos:

  1. Redirecionamentos permanentes
  2. Redirecionamentos temporários

Redirecionamentos permanentes

Estes são os redirecionamentos que duram e não são válidos para essa solicitação específica. Um redirecionamento permanente diz ao cliente que o recurso solicitado se moveu permanentemente para um novo endereço. Um redirecionamento permanente é indicado pelo código de status HTTP 301.

Redirecionamentos temporários

Por outro lado, os redirecionamentos temporários dizem ao cliente que o servidor gostaria de redirecionar para um novo recurso. No entanto, esse redirecionamento não é permanente e não deve armazenar em cache este redirecionamento. Isso significa que o redirecionamento não estará lá em algum momento posterior.

Este tipo de redirecionamento é indicado pelo código de status HTTP 302.

Agora, temos o básico dos redirecionamentos HTTP, vamos aprender a dizer a Curl para seguir uma resposta de redirecionamento.

Curl Siga o redirecionamento

Curl permite que você siga um redirecionamento usando a bandeira -l. Esta bandeira é derivada do cabeçalho do local em uma operação de redirecionamento.

A sintaxe do comando é como mostrado:

$ curl -l [url]

Um exemplo de um simples redirecionamento de cacho é como mostrado:

Curl -l http: // linuxhint.com

Curl Set Redirecte máximo

Quando você permite que o CURL siga os redirecionamentos, ele pode executar até 50 redirecionamentos. No entanto, você pode definir um valor personalizado para os redirecionamentos usando o parâmetro -max -redirs.

A sintaxe é como mostrado:

$ curl -l -max -redirs [número] [url]

Por exemplo, para definir um máximo de 5 redirecionamentos, podemos executar:

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

Curl Ativar redirecionamentos infinitos

Não há dúvida de que Curl tentará protegê -lo da execução de redirecionamentos infinitos. Portanto, se você fizer uma solicitação que retorne mais de 20 redirecionamentos, o CURL cancelará automaticamente a solicitação.

No entanto, você pode substituir esta opção definindo o parâmetro -max -redirs para -1

A sintaxe é como mostrado:

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

Curl Evite a conversão do método HTTP

Se você encontrar um redirecionamento ao fazer uma solicitação de postagem HTTP, o CURL converterá a solicitação para uma solicitação GET em vez.

No entanto, você pode impedir que o CURL converte uma postagem para obter quando ela encontrar um redirecionamento 301, 302 e 303 usando o parâmetro -post [status_code].

A sintaxe é mostrada:

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

Por exemplo, para impedir que o Curl se converse para obter quando encontrar um redirecionamento 301:

$ CURL -L -POST301 [URL]

Curl autenticar redirecionamento

Pode ser necessário fornecer credenciais de autenticação ao fazer uma solicitação. No entanto, se o Curl encontrar um redirecionamento, isso impedirá o envio das credenciais por razões de segurança.

Você pode substituir isso definindo o parâmetro - - -Trust.

A sintaxe é como mostrado:

$ CURL -L -Location -Location --User "Usuário: Senha"

Conclusão

Usando este tutorial, descobrimos como executar operações de redirecionamento usando CURL. Cobrimos conceitos como seguir um redirecionamento simples, definir o número de redirecionamentos, redirecionamentos infinitos e autenticação em um redirecionamento.