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