HTTPQUERY
Español

Origin

Uso

Los navegadores añaden la cabecera Origin a las solicitudes entre orígenes y a las solicitudes del mismo origen desencadenadas por determinados métodos o API. La cabecera identifica el lugar del que procede la solicitud y proporciona al servidor la información necesaria para aplicar sus políticas de control de acceso.

La cabecera aparece en todas las solicitudes CORS (incluidas las de comprobación previa), en los envíos de formularios mediante POST y en las solicitudes iniciadas por la Fetch API o XMLHttpRequest. El navegador no la incluye en las solicitudes de navegación GET o HEAD del mismo origen.

A diferencia de la cabecera Referer, Origin nunca incluye la ruta ni la cadena de consulta, por lo que su valor preserva mejor la privacidad. La cabecera Sec-Fetch-Site aporta una señal complementaria al clasificar la solicitud como same-origin, same-site, cross-site o none.

scheme://host:port

El origen completo, formado por el protocolo, el nombre de host y el puerto. El puerto se omite cuando el protocolo utiliza un puerto predeterminado (80 para HTTP, 443 para HTTPS).

Origin: https://example.com
Origin: https://api.example.re:8443

null

Se envía cuando el origen es sensible desde el punto de vista de la privacidad o es opaco. Los iframes en espacio aislado, las URL data: y las redirecciones entre orígenes producen un valor null.

Origin: null

Nota

Los servidores que se apoyan en null para el control de acceso crean un agujero de seguridad. Múltiples contextos sin relación entre sí comparten el mismo origen null, de modo que confiar en ese valor concede acceso a todos ellos.

Ejemplo

Una solicitud POST entre orígenes procedente de una aplicación de front-end incluye la cabecera Origin para que el servidor verifique a quien la llama antes de devolver una respuesta con CORS habilitado.

Solicitud

POST /api/orders HTTP/1.1
Host: api.example.re
Origin: https://shop.example.re
Content-Type: application/json

Respuesta

HTTP/1.1 201 Created
Access-Control-Allow-Origin: https://shop.example.re
Vary: Origin

Una solicitud OPTIONS de comprobación previa lleva el origen junto con el método y las cabeceras previstos.

Solicitud

OPTIONS /api/orders HTTP/1.1
Host: api.example.re
Origin: https://shop.example.re
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type