Localização HTTP - HTTP location
HTTP |
---|
Métodos de solicitação |
Campos de cabeçalho |
Códigos de status de resposta |
Métodos de controle de segurança de acesso |
Vulnerabilidades de segurança |
O campo de cabeçalho HTTP Location é retornado em respostas de um servidor HTTP em duas circunstâncias:
- 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
- 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 .