Noticias Raspberry Pi

Cómo usar la función de encabezado de PHP

En este tutorial, lo guiaremos a través de cómo usar la función de encabezado de PHP para enviar encabezados HTTP sin formato.

Puede usar la función de encabezado de PHP para configurar y enviar encabezados HTTP al usuario final. Los encabezados HTTP son útiles porque permiten que el cliente y el servidor transmitan información con una solicitud o una respuesta. Además, puede usar estos encabezados para controlar el almacenamiento en caché, especificar el tipo de contenido, redirigir a los usuarios y más.

Existe una amplia gama de encabezados admitidos que puede usar, por lo que le recomiendo que se tome el tiempo para aprenderlos si planea convertirse en un experto en desarrollo web. Cubriremos algunos ejemplos en este tutorial.

Este tutorial lo guiará a través de la sintaxis de la función de encabezado, algunos ejemplos del uso de la función y un código de error común asociado con el uso de la función de encabezado.

La función de encabezado acepta tres parámetros, pero solo se requiere el primer parámetro.

Es fundamental que utilice la función de encabezado antes de enviar cualquier resultado al usuario final. Si intenta utilizar la función después de salir, probablemente verá un error.

En cabeza es donde especifica la cadena de encabezado para enviar. Este parámetro es obligatorio y dará como resultado un error si no se especifica.

Hay dos encabezados especiales que puede usar con esta función. Los explicaré rápidamente a continuación.

El primer caso es usar un encabezado que comience con HTTP/. Puede usarlo para especificar el código de estado para enviar. Por ejemplo, HTTP/1.1 404 Not Found generará una página de error 404 cuando el usuario acceda a la página.

El segundo caso es comenzar el encabezado con la ubicación:. Después de la ubicación, puede especificar una URL de redireccionamiento. Por ejemplo, Ubicación: https://google.com dará como resultado una 302 redirigir a Google a menos que uno 201 Dónde 3XX El código de estado ya ha sido enviado.

Reemplazar es un opcional parámetro y por defecto es VERDADERO si no se especifica. Indica si PHP debe reemplazar el encabezado si ya existe. Precisando FALSO permitirá múltiples encabezados del mismo tipo.

http_response_code es un parámetro opcional y se puede utilizar para forzar un código de respuesta específico.

Hay muchos encabezados diferentes que puede configurar usando la función de encabezado de PHP. En esta sección, lo guiaremos a través de algunas de las diferentes formas de usar encabezados.

Devolver un código de estado específico

Puede especificar un código de estado específico para devolverlo como encabezado. Hay muchos códigos de estado que puede enviar a un navegador. Por ejemplo, el siguiente ejemplo enviará un código de estado 404 al navegador. Usando $_SERVER[«SERVER_PROTOCOL»]también podemos asegurarnos de que se utiliza el protocolo correcto, por ejemplo, HTTP/1.0.

El siguiente ejemplo es la respuesta que recibimos de nuestro servidor de desarrollo web local.

encabezado de código de estado 404

Descargar archivos

En este ejemplo, le mostramos cómo especificar un archivo para que un usuario lo cargue.

Primero indicamos el tipo de contenido, que es un archivo PDF. Puede especificar otros tipos de contenido, como imágenes, audio, texto, video y otras aplicaciones.

En segundo lugar, usamos un encabezado de disposición de contenido para indicar que el archivo debe descargarse en lugar de verse en el navegador web. Por último, en la misma cabecera especificamos el nombre del archivo, que será el nombre del archivo una vez subido.

Finalmente, usamos la función readfile para leer un archivo y enviarlo al búfer. El parámetro de esta función debe ser la ubicación y el nombre del archivo que desea descargar.

El siguiente código es muy básico, y es posible que desee ampliarlo si desea usarlo en un servidor de producción.

Los encabezados a continuación son de nuestro servidor de desarrollo web local. Se descargó un archivo cuando hicimos clic en el script PHP.

Descargar encabezados en PDF

El uso de encabezados para controlar los cachés es una herramienta invaluable, especialmente si se trata de cachés de proxy o CDN. Recomiendo leer los distintos encabezados de control de caché, ya que hay mucho que cubrir.

El primer encabezado usa el encabezado Cache-Control con la directiva no-cache, no-store, must-revalidate.

no-cache indica que el navegador debe validar la respuesta con el servidor de origen en cada reutilización. Sin embargo, permite almacenar la respuesta en un caché.

no-store indica que la respuesta no debe almacenarse en caché en absoluto.

must-revalidate indica que si la respuesta se vuelve obsoleta, debe validarse antes de que pueda usarse nuevamente.

Nuestro segundo encabezado especifica un encabezado de vencimiento establecido en una fecha en el pasado. Tener una fecha pasada significa que la respuesta aún se considera obsoleta y, por lo tanto, es poco probable que se almacene en caché.

Nuestro navegador puede ver que nuestro control de caché y los encabezados de vencimiento existen con sus datos.

Caché de encabezados

Redirigir usuarios

Nuestro último ejemplo usa encabezados para redirigir al usuario a otra página. De forma predeterminada, el código de estado para usar este encabezado es 302 Redirección temporal. Sin embargo, puede cambiar esto especificando un código diferente como tercer parámetro.

En el siguiente ejemplo, estamos usando el encabezado de ubicación para redirigir a cualquiera que haga clic en nuestro script PHP al motor de búsqueda de Google.

Como puede ver en la captura de pantalla a continuación, nuestro script nos redirigió a Google usando el 302 código de estado de redirección temporal.

encabezado de redireccionamiento

Puede recibir el siguiente error al intentar utilizar la función de encabezado. La advertencia indica que hay un problema en algún lugar de sus archivos PHP. Diagnosticar el problema puede ser simple o complicado.

Si recibe el error anterior, significa que se generaron los datos y se enviaron los encabezados. La salida puede ser intencional o no intencional. Por ejemplo, las advertencias, los mensajes de error o incluso los espacios fuera de las etiquetas de PHP pueden hacer que los encabezados se envíen antes de tiempo. Las funciones como imprimir, hacer eco y otras funciones que generan datos también pueden hacer que se envíen encabezados.

El mensaje de error debe contener suficiente información para localizar al culpable de los encabezados enviados anteriormente. La solución puede ser tan simple como eliminar el código infractor o mover la lógica del encabezado antes de que comience la salida.

Conclusión

Espero que ahora tenga una comprensión básica de cómo puede usar la función de encabezado en PHP. Hemos cubierto algunos ejemplos útiles y el error más común que puede tener con esta función.

Hay muchas otras funciones útiles que puede usar en PHP para ayudarlo a crear un programa útil. Por ejemplo, también puede encontrar útiles funciones como dormir para controlar la ejecución de sus scripts.

Si podemos mejorar este tutorial, háganoslo saber dejando un comentario a continuación.

Actualizaciones semanales directamente a su bandeja de entrada

¡Reciba nuestros proyectos de Raspberry Pi, tutoriales de codificación, guías de Linux y más!

Suscribir

También puede gustarte...