Tipos de headers mais utilizados no PHP

301 Moved Permanently (redirect)

Informa ao usuário que a página acessada foi movida permanentemente. (301)

// Define cabeçalho
header('HTTP/1.1 301 Moved Permanently');

// Redireciona usuário
header('Location: https://www.meusite.com/pagina.html');

// Encerra script
die();

 

302 Moved Temporarily (redirect)

Informa ao usuário que a página acessada foi movida temporariamente. (302)

// Redireciona usuário
header('Location: https://www.meusite.com/pagina.html');

// Encerra script
die();

 

404 Page Not Found

Informa ao usuário que a página não foi encontrada. (404)

// Define cabeçalho
header('HTTP/1.1 404 Not Found');

 

503 Service not available

Informa ao usuário que a página e/ou servidor estão indisponíveis no momento, motivado por dificuldades técnicas ou outro motivo. (503)

// Define cabeçalho
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');

// Solicita atualização após 60 segundos
header('Retry-After: 60');

 

PDF output

Faz o PHP carregar um arquivo PDF e exibir no script acessado

// Define cabeçalho como tipo PDF
header('Content-Type: application/pdf');

// Carrega e imprime arquivo teste.pdf
echo file_get_contents('teste.pdf');

 

Cache

Faz o PHP forçar o browser do usuário a não armazenar dados em cache.

// Define data de expiração para 1997 (ou seja, o browser vai sempre forçar atualização)
header(
'Expires: Sat, 26 Jul 1997 05:00:00 GMT');

// Faz o browser forçar atualização da página e a não guardar nada em cache
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Pragma: no-cache');

 

Forçar download de arquivo pelo browser

Faz o PHP gerar a saída como um arquivo que irá ser baixado quando o script for acessado.

// Variável do arquivo
$arquivo = "arquivo.zip";

// Define como saída um arquivo anexo
header('Content-Disposition: attachment; filename=' . urlencode($arquivo)); 

// Cabeçalhos que preparam o browser para abrir caixa de diálogo de download
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Description: File Transfer');

// Conta tamanho do arquivo em bytes
header('Content-Length: ' . filesize($arquivo));

// Imprime dados do arquivo
echo file_get_contents($arquivo);