Localização HTTP - HTTP location

O campo de cabeçalho HTTP Location é retornado em respostas de um servidor HTTP em duas circunstâncias:

  1. Para pedir a um navegador da web para carregar uma página da web diferente ( redirecionamento de URL ). Nessa circunstância, o cabeçalho Location deve ser enviado com um código de status HTTP 3xx. Ele é passado como parte da resposta por um servidor da web quando o URI solicitado tem:
    • Movido Temporariamente;
    • Movido Permanentemente; ou
    • Processou uma solicitação, por exemplo, um formulário POSTADO, e está fornecendo o resultado dessa solicitação em um URI diferente
  2. Para fornecer informações sobre a localização de um recurso recém-criado. Nessa circunstância, o cabeçalho Location deve ser enviado com um código de status HTTP 201 ou 202 .

Uma versão obsoleta das especificações HTTP 1.1 (IETF RFC 2616) exigia um URI absoluto completo para redirecionamento. O grupo de trabalho IETF HTTP descobriu que os navegadores da web mais populares toleram a passagem de uma URL relativa e, consequentemente, as especificações HTTP 1.1 atualizadas (IETF RFC 7231) relaxaram a restrição original, permitindo o uso de URLs relativas em cabeçalhos de localização.

Exemplos

Exemplo de URL absoluto

URLs absolutos são URLs que começam com um esquema (por exemplo, http :, https :, telnet :, mailto :) e estão em conformidade com a sintaxe e semântica específicas do esquema. Por exemplo, a sintaxe e a semântica específicas do esquema HTTP para URLs HTTP requerem um "host" (endereço do servidor da web) e um "caminho absoluto", com componentes opcionais de "porta" e "consulta".

Um cliente solicitando
https://www.example.com/index.html
usando

GET /index.html HTTP/1.1
Host: www.example.com

pode obter a resposta do servidor

HTTP/1.1 302 Found
Location: https://www.example.org/index.php

Exemplo de caminho absoluto de URL relativo

URLs relativos são URLs que não incluem um esquema ou host. Para serem compreendidos, devem ser combinados com o URL do pedido original.

Uma solicitação do cliente para
https://www.example.com/blog/all :
pode obter uma resposta do servidor com um caminho que é absoluto porque começa com uma barra:

HTTP/1.1 302 Found
Location: /articles/

O URL do local é expandido pelo cliente para
https://www.example.com/articles/ .

Exemplo de caminho relativo de URL relativo

Uma solicitação do cliente para
https://www.example.com/blog/latest
pode obter uma resposta do servidor com um caminho relativo porque não começa com uma barra:

HTTP/1.1 302 Found
Location: 2020/zoo

O cliente remove o segmento do caminho após a última barra do URL original e anexa o caminho relativo, resultando em
https://www.example.com/blog/2020/zoo .

Veja também

Referências