Cabeceras de respuesta¶
Las cabeceras deben ser lo primero que se devuelve al navegador. Se envían mediante la función header(cadena)
. A través de las cabeceras es posible configurar el tipo de contenido, establecer el tiempo de expiración, redirigir al navegador, especificar códigos de error HTTP, entre otras configuraciones.
<?php header("Content-Type: text/plain"); ?>
<?php header("Location: http://www.ejemplo.com/inicio.html");
exit();
Configuración y depuración¶
La configuración de las cabeceras se puede verificar en las herramientas para desarrolladores de los navegadores web, accediendo a Developer Tools --> Network --> Headers.

Es común modificar las cabeceras para controlar el comportamiento de la caché, ya sea para evitar que se guarde o para forzar su actualización:
<?php
header("Expires: Sun, 31 Jan 2021 23:59:59 GMT");
// Expiración en tres horas
$now = time();
$horas3 = gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now + 60 * 60 * 3);
header("Expires: {$horas3}");
// Expiración en un año
$anyo1 = gmstrftime("%a, %d %b %Y %H:%M:%S GMT", $now + 365 * 86440);
header("Expires: {$anyo1}");
// Marcado como expirado (fecha en el pasado)
$pasado = gmstrftime("%a, %d %b %Y %H:%M:%S GMT");
header("Expires: {$pasado}");
// Evitar caché en el navegador o en el proxy
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
- En el segundo ejemplo de configuración de caché se ajustó el cálculo para un año completo a 365 días en segundos: 86400 segundos por día.
Pragma
yCache-Control
permiten garantizar que tanto el navegador como el proxy deshabiliten la caché, siendo particularmente útil para entornos donde se desea evitar la retención de información obsoleta.
Actividades¶
-
AC 407. (RA4 / CE4c / IC1 / 3p) - Desde la secretaria del centro se solicita el desarrollo de un script que redirija al usuario a diferentes páginas dependiendo de la hora del día. En una deberás poner el horario de mañanas y en otra el de tardes.
-
AP 408. (RA4 / CE4c / IC1 / 3p) - Desde la secretaría del centro necesitan saber cuándo se ha modificado cierto fichero. Para ello, se debe implementar un script PHP que utilice la cabecera
Last-Modified
para gestionar la caché de manera efectiva y responder de forma condicional a las solicitudes del cliente.Ayuda
Hazte uso de un fichero que puedas modificar fácilmente, por ejemplo un fichero de texto. En la unidad de trabajo 6 veremos cómo modificarlos mediante PHP, ahora debes hacerlo a mano.
-
PR 409. (RA4 / CE4a CE4b CE4c / IC2 / 5p) - Necesitamos recoger los datos de los trabajadores. Para ello se pide crear un formulario web que permita al usuario introducir varios datos de contacto como nombre, email y teléfono. Una vez que el formulario se envíe, estos datos se recogerán en PHP, se convertirán en un formato CSV y se presentará un enlace o botón para descargar el archivo CSV generado.
Ayuda
En el caso de servir un archivo CSV para descarga, es importante establecer el
Content-Type
. Además, para forzar la descarga del archivo en lugar de que se muestre en el navegador, se utiliza la cabeceraContent-Disposition
con la directivaattachment
.