cURL Seguir redirección
cURL es una potente utilidad de línea de comandos que facilita la transferencia de datos a través de una amplia gama de protocolos, incluidos HTTP/HTTPS, FTP, GOPHER, etc.
Ya sea que cree y depure solicitudes simples o API complejas, curl es una excelente herramienta en su conjunto de habilidades.
Este tutorial explorará el concepto de redireccionamientos HTTP y cómo podemos usar cURL para seguirlos en una solicitud.
¿Qué es una redirección HTTP?
Una redirección HTTP, comúnmente conocida como redirección, se refiere a una técnica en la que una dirección dada devuelve una instrucción de redirección en lugar de devolver el recurso o documento solicitado.
Es básicamente lo que sugiere el nombre. Cuando un cliente solicita un recurso específico, en lugar de que el servidor responda con el resultado consultado, le dice al cliente que busque el recurso en una ubicación diferente.
La siguiente imagen muestra un concepto básico de una redirección HTTP.
Fuente: Red de desarrolladores de Mozilla.
El siguiente es un encabezado de redirección HTTP simple.
HTTP/1.1 301 movido permanentemente
Ubicación: https://linux-console.net
En el ejemplo anterior, el servidor nos dice que la dirección http://linux-console.net se ha movido permanentemente a https://linux-console.net
Hay dos tipos principales de redirecciones:
Redirecciones permanentes
-
Redirecciones temporales
Redirecciones permanentes
Estos son los redireccionamientos que duran y no son válidos para esa solicitud específica. Una redirección permanente le dice al cliente que el recurso solicitado se ha movido permanentemente a una nueva dirección. Una redirección permanente se indica mediante el código de estado HTTP 301.
Redirecciones temporales
Por otro lado, las redirecciones temporales le dicen al cliente que al servidor le gustaría redirigir a un nuevo recurso. Sin embargo, esta redirección no es permanente y no debe almacenarse en caché. Esto significa que la redirección no estará allí en algún momento posterior.
Este tipo de redirección se indica con el código de estado HTTP 302.
Ahora que tenemos los conceptos básicos de los redireccionamientos HTTP, aprendamos cómo decirle a cURL que siga una respuesta de redireccionamiento.
cURL Seguir redirección
cURL le permite seguir una redirección usando el indicador -L. Esta bandera se deriva del encabezado de ubicación en una operación de redirección.
La sintaxis del comando es como se muestra:
Un ejemplo de una redirección cURL simple es como se muestra:
cURL Establecer redireccionamientos máximos
Cuando permite que cURL siga los redireccionamientos, puede realizar hasta 50 redireccionamientos. Sin embargo, puede establecer un valor personalizado para los redireccionamientos mediante el parámetro –max-redirs.
La sintaxis es como se muestra:
Por ejemplo, para establecer un máximo de 5 redireccionamientos, podemos ejecutar:
cURL Habilitar redireccionamientos infinitos
No hay duda de que cURL intentará protegerlo de la ejecución de redireccionamientos infinitos. Por lo tanto, si realiza una solicitud que devuelve más de 20 redireccionamientos, cURL cancelará automáticamente la solicitud.
Sin embargo, puede anular esta opción configurando el parámetro –max-redirs en -1
La sintaxis es como se muestra:
cURL Prevenir la conversión del método HTTP
Si encuentra una redirección al realizar una solicitud HTTP POST, cURL convertirá la solicitud en una solicitud GET.
Sin embargo, puede evitar que cURL convierta un POST en GET cuando encuentre redireccionamientos 301, 302 y 303 usando el parámetro –post[status_code].
Se muestra la sintaxis:
Por ejemplo, para evitar que cURL se convierta en GET cuando encuentre una redirección 301:
redirección de autenticación de cURL
Es posible que deba proporcionar credenciales de autenticación al realizar una solicitud. Sin embargo, si cURL encuentra una redirección, evitará el envío de las credenciales por motivos de seguridad.
Puede anular esto configurando el parámetro –ubicación-confianza.
La sintaxis es como se muestra:
Conclusión
Usando este tutorial, descubrimos cómo realizar operaciones de redirección usando cURL. Cubrimos conceptos como seguir un redireccionamiento simple, establecer la cantidad de redireccionamientos, redireccionamientos infinitos y autenticación cURL en un redireccionamiento.