El campo de encabezado de la ubicación HTTP se devuelve en las respuestas de un servidor HTTP en dos circunstancias:
- Para pedirle 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 pasa como parte de la respuesta por un servidor web cuando el URI solicitado tiene:
- Mudado temporalmente;
- Movido permanentemente; o
- Procesó una solicitud, por ejemplo, un formulario POST, y proporciona el resultado de esa solicitud en un 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 un URI absoluto completo para la redirección. [2] El grupo de trabajo IETF HTTP encontró 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 de
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 la semántica específicas del esquema HTTP para las URL HTTP requieren un "host" (dirección del servidor web) y una "ruta absoluta", con componentes opcionales de "puerto" y "consulta".
Un cliente que solicita
https://www.example.com/index.html
usando
OBTENER /index.html HTTP / 1.1 Host : www.example.com
puede obtener la respuesta del servidor
HTTP / 1.1 302 Ubicación encontrada : 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 Ubicación encontrada : / artículos /
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 Ubicación encontrada : 2020 / zoo
El cliente elimina el segmento de la ruta después de la última barra de la URL original y agrega la ruta relativa que da como resultado
https://www.example.com/blog/2020/zoo . [9] [8]
Ver 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 IETF HTTPbis
- ^ "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 identificador uniforme de recursos (URI) de IANA" . Consultado el 21 de noviembre de 2014 . CS1 maint: parámetro desalentado ( enlace )
- ^ a b "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 . CS1 maint: parámetro desalentado ( enlace )
- ^ a b "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 . CS1 maint: parámetro desalentado ( enlace )
- ^ "Fusionar rutas" . 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 . CS1 maint: parámetro desalentado ( enlace )