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.

Referências