El campo de encabezado Ubicación HTTP se devuelve en las respuestas de un servidor HTTP en dos circunstancias:
- Para solicitar a un navegador web que cargue una página web diferente ( redirección de URL ). En esta circunstancia, el encabezado de ubicación debe enviarse con un código de estado HTTP de 3xx. Se envía como parte de la respuesta de un servidor web cuando la URL solicitada tiene:
- Movido temporalmente;
- Se mudó de forma permanente; o
- Se procesó una solicitud, por ejemplo, un formulario publicado, y se proporciona el resultado de esa solicitud en una URI diferente
- Para proporcionar información sobre la ubicación de un recurso recién creado. En esta circunstancia, el encabezado de ubicación debe enviarse con un código de estado HTTP de 201 o 202. [ 1]
Una versión obsoleta de las especificaciones HTTP 1.1 (IETF RFC 2616) requería una URL absoluta completa para la redirección. [2] El grupo de trabajo HTTP de IETF descubrió que los navegadores web más populares toleran el paso de una URL relativa [3] y, en consecuencia, las especificaciones HTTP 1.1 actualizadas (IETF RFC 7231) relajaron la restricción original, permitiendo el uso de URL relativas en los encabezados de ubicación. [4]
Ejemplos
Ejemplo de URL absoluta
Las URL absolutas son URL que comienzan con un esquema [5] (por ejemplo, http:, https:, telnet:, mailto:) [6] y se ajustan a la sintaxis y semántica específicas del esquema. Por ejemplo, la sintaxis y semántica específicas del esquema HTTP para las URL HTTP requiere un "host" (dirección del servidor web) y una "ruta absoluta", con los componentes opcionales "puerto" y "consulta".
Un cliente solicita https://www.aungmyokyaw.com/index.html usando
GET /index.html HTTP / 1.1
Host : www.ejemplo.com
Puede obtener la respuesta del servidor
HTTP / 1.1 302 Encontrado
Ubicación : https://www.example.org/index.php
Ejemplo de ruta absoluta de URL relativa
Las URL relativas son URL que no incluyen un esquema ni un host. Para que se entiendan, deben combinarse con la URL de la solicitud original.
Una solicitud de cliente para https://www.example.com/blog/all puede obtener una respuesta del servidor con una ruta que es absoluta porque comienza con una barra: [7]
HTTP / 1.1 302 Encontrado
Ubicación : /articles/
El cliente amplía la URL de la ubicación a https://www.example.com/articles/ . [8]
Ejemplo de ruta relativa de URL relativa
Una solicitud de cliente para https://www.example.com/blog/latest puede obtener una respuesta del servidor con una ruta que es relativa porque no comienza con una barra: [7]
HTTP / 1.1 302 Encontrado
Ubicación : 2020/zoo
El cliente elimina el segmento de ruta después de la última barra de la URL original y agrega la ruta relativa, lo que da como resultado https://www.example.com/blog/2020/zoo . [9] [8]
Véase también
Referencias
- ^ Richardson, Leonard (2007). Servicios web RESTful . Sebastopol: O'Reilly. Págs. 228-230. ISBN. 978-0-596-52926-0.
- ^ "Ubicación". Protocolo de transferencia de hipertexto -- HTTP/1.1. IETF . Junio de 1999. sec. 14.30. doi : 10.17487/RFC2616 . RFC 2616.
- ^ Ticket 185 del grupo de trabajo HTTPbis de IETF
- ^ "Ubicación". Protocolo de transferencia de hipertexto (HTTP/1.1): semántica y contenido. IETF . Junio de 2014. sec. 7.1.2. doi : 10.17487/RFC7231 . RFC 7231.
- ^ Identificador uniforme de recursos (URI): sintaxis genérica. IETF . Enero de 2005. doi : 10.17487/RFC3986 . RFC 3986.
- ^ "Esquemas de identificadores uniformes de recursos (URI) de la IANA" . Consultado el 21 de noviembre de 2014 .
- ^ ab "Referencia relativa". Identificador uniforme de recursos (URI): sintaxis genérica. IETF . Enero de 2005. sec. 4.2. doi : 10.17487/RFC3986 . RFC 3986 . Consultado el 22 de noviembre de 2020 .
- ^ ab "Ejemplos normales". Identificador uniforme de recursos (URI): sintaxis genérica. IETF . Enero de 2005. sec. 5.4.1. doi : 10.17487/RFC3986 . RFC 3986 . Consultado el 22 de noviembre de 2020 .
- ^ "Merge Paths". Identificador uniforme de recursos (URI): sintaxis genérica. IETF . Enero de 2005. sec. 5.2.3. doi : 10.17487/RFC3986 . RFC 3986 . Consultado el 22 de noviembre de 2020 .