HTTP Header - Location
Abstract
O cabeçalho HTTP
Location
é utilizado para redirecionamentos, porém os navegadores e clientes realizam redirecionamentos automáticos apenas para status HTTP 3xx.
Introdução
No protocolo HTTP, o cabeçalho Location
indica ao cliente (navegador ou outro agente) uma URL de destino em situações de redirecionamento.
No entanto, o comportamento esperado desse cabeçalho depende do código de status HTTP retornado pelo servidor.
Quando lidamos com códigos 4xx, que indicam erros do cliente, o comportamento do Location
difere significativamente, pois os navegadores não interpretam este cabeçalho para realizar redirecionamentos automáticos.
Definição
O cabeçalho HTTP Location
é utilizado para especificar uma nova URL para a qual o cliente deve redirecionar. Ele é mais comumente associado aos códigos de status HTTP na série 3xx (redirecionamentos), mas também pode ser utilizado com outros códigos, como 2xx e 4xx, dependendo do caso de uso.
A sintaxe do cabeçalho é:
Location: <URL>
Exemplo em uma resposta HTTP:
HTTP/1.1 302 Found
Location: https://www.example.com/new-page
Para os códigos 4xx, o Location
pode ser utilizado para informar uma URL alternativa que contenha mais informações sobre o erro ou recursos adicionais, mas não gera redirecionamento automático.
Comportamento do Location
em Redirecionamentos
1. Códigos 3xx (Redirecionamentos)
Quando o Location
é usado com códigos 3xx, o navegador segue automaticamente a URL especificada:
- 301 Moved Permanently: Redireciona permanentemente para uma nova URL.
- 302 Found / 307 Temporary Redirect: Indica um redirecionamento temporário.
- 303 See Other: Direciona o cliente a uma nova URL usando o método GET.
2. Códigos 4xx (Erros do Cliente)
O cabeçalho Location
pode ser incluído em respostas com status 4xx, mas os navegadores e clientes não realizam redirecionamento automático. Em vez disso, o Location
pode ser usado para sugerir uma URL que contenha informações adicionais ou para fins de registro.
Exemplo:
HTTP/1.1 404 Not Found
Location: https://www.example.com/help/not-found
Nesse caso, o cliente não será redirecionado automaticamente para a URL em Location
. Ele pode optar por acessar o recurso manualmente.
Exemplos
Código 301
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/new-page
Comportamento esperado: O navegador redireciona automaticamente para https://www.example.com/new-page
.
Código 404
HTTP/1.1 404 Not Found
Location: https://www.example.com/errors/404-info
Comportamento esperado: O navegador não redireciona automaticamente para https://www.example.com/errors/404-info
. No entanto, o cliente pode interpretar o cabeçalho para exibir um link ao usuário ou registrar a URL para auditoria.