En el modelo cliente/servidor es comin querer enviar informacion extra (autenticacion, control de cookies, control de caché, etc.). Esto lo podemos hacer con la funcion header.
puedes mandar:
autenticacion
control de cookies
control de cache
Uno de los headers que podemos mandar son redirects,es decir, el servidor puede responder al navegador Oye, redirige al usuario a esta pagina.
header("Location: https://platzi.com");
Tambien puedes redirigir a archivos especificos pero ten cuidado de no generar un bucle ten cuidado de hacer esto
Los encabezados siempre deben ser enviados antes de enviar el cuerpo de la peticion,es decir antes de mandar el contenido.Eso quiere decir que, si imprimes HTML o cualquier otra cosa que genere cuerpo, al intentar redirigir con header obtendras un error.
<aside>
💡 Recuerda que los encabezados deben ser los primeros en enviarse antes de enviar una respuesta o body
</aside>
<aside>
💡 Recuerda utlizar la funcion exit() o die al terminar tus headers para que los crawlers se detengan de analizar
</aside>
Gracias, excelentes apuntes
Excelente resúmen! muy útil!
Algo que agradezco es que me recomendaran el uso de die o exit, nunca lo tuve en cuenta
Totalmente! es un dato que no sabía que existía!
Entiendo que por buenas prácticas al utilizar un header location (redirección), es recomendable colocar un exit o un die().
Mi pregunta es... Si en vez de colocar un exit o un die(), utilizo un return y que devuelva la redirección. Sigue siendo válido? es decir sigue siendo buena práctica?
Lo pregunto pues normalmente lo hago de esta manera.
Realmente eso de "por buena práctica" depende. Eso se coloca porque si por alguna razón la redirección no se llega a ejecutar, pues al menos con el die o con el exit le dices al servidor que ya no ejecute nada más.
El return depende de donde lo hagas, eso usualmente servirá más que nada para terminar la ejecución de una función (pero NO de tu página) en caso en el que el redirect no llegue a funcionar.
Pero la verdad es que rara vez o casi nunca pasa eso de que el redirect no funciona jaja