"No mesmo site" e "na mesma origem" são termos frequentemente citados, mas muitas vezes mal interpretados. Por exemplo, eles são usados no contexto de transições de página,
solicitações fetch()
, cookies, abertura de pop-ups, recursos incorporados e
iframes. Esta página explica o que são e como elas diferem uma da
outra.
Origem

"Origem" é uma combinação de um
esquema
(também conhecido como
protocolo, por
exemplo, HTTP ou
HTTPS), um
nome de host e uma
porta
(se especificada). Por exemplo, considerando um URL de https://www.example.com:443/foo
,
a "origem" é https://www.example.com:443
.
"De mesma origem" e "de origem cruzada"
Os sites que têm a mesma combinação de esquema, nome do host e porta são considerados "de mesma origem". Tudo o que não se enquadra nessa categoria é considerado "de origem cruzada".
Origem A | Origem B | "De mesma origem" ou "de origem cruzada"? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | Cross-origin: diferentes domínios |
https://example.com:443 | Origem cruzada: subdomínios diferentes | |
https://login.example.com:443 | Origem cruzada: subdomínios diferentes | |
http://www.example.com:443 | Origem cruzada: esquemas diferentes | |
https://www.example.com:80 | Origem cruzada: portas diferentes | |
https://www.example.com:443 | De mesma origem: correspondência exata | |
https://www.example.com | Mesmas origens: número de porta implícita (443) corresponde |
Site

Domínios de nível superior (TLDs) como
.com
e .org
estão listados no
banco de dados da zona raiz. No exemplo
anterior, "site" é uma combinação do
esquema,
do TLD e da parte do
domínio logo antes dele (chamamos de TLD+1). Por exemplo, considerando um URL de
https://www.example.com:443/foo
, o "site" é https://example.com
.
Lista de sufixos públicos e eTLD
Para domínios com elementos como .co.jp
ou .github.io
, o uso de .jp
ou
.io
não é específico o suficiente para identificar o "site". Não há como
determinar algoritmicamente o nível de domínios registráveis para um TLD específico.
Para ajudar nisso, a lista de sufixos públicos
define uma lista de sufixos públicos, também chamados de TLDs efetivos (eTLDs). A
lista de eTLDs é mantida em publicsuffix.org/list.
Para identificar a parte "site" de um domínio que inclui um eTLD, aplique a mesma
prática do exemplo com .com
. Tomando
https://www.project.github.io:443/foo
como exemplo, o esquema é https
,
o eTLD é .github.io
e o eTLD+1 é project.github.io
. Portanto, https://project.github.io
é considerado o "site" para esse URL.

"no mesmo site" e "entre sites"
Sites que têm o mesmo esquema e o mesmo eTLD+1 são considerados "mesmo site". Os sites que têm um esquema ou um eTLD+1 diferente são "entre sites".
Origem A | Origem B | "No mesmo site" ou "entre sites"? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | Entre sites: domínios diferentes |
https://login.example.com:443 | No mesmo site: diferentes subdomínios não importam | |
http://www.example.com:443 | Entre sites: esquemas diferentes | |
https://www.example.com:80 | Mesmo site: diferentes portas não importam | |
https://www.example.com:443 | No mesmo site: correspondência exata | |
https://www.example.com | No mesmo site: as portas não importam |
"No mesmo site sem esquema"

A definição de "mesmo site" mudou para incluir o esquema de URL como parte do
site para evitar que o HTTP seja usado como um
canal fraco.
O conceito mais antigo de "mesmo site" sem comparação de esquema agora é chamado de
"mesmo site sem esquema". Por exemplo, http://www.example.com
e
https://www.example.com
são considerados sem esquema, mas não são do mesmo site,
porque apenas a parte do eTLD+1 é importante, e o esquema não é considerado.
Origem A | Origem B | "No mesmo site sem esquema" ou "entre sites"? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | Entre sites: domínios diferentes |
https://login.example.com:443 | No mesmo site sem esquema: subdomínios diferentes não importam | |
http://www.example.com:443 | Sem esquema no mesmo site: esquemas diferentes não importam | |
https://www.example.com:80 | No mesmo site sem esquema: diferentes portas não importam | |
https://www.example.com:443 | No mesmo site sem esquema: correspondência exata | |
https://www.example.com | No mesmo site sem esquema: as portas não importam |
Como conferir se uma solicitação é do "mesmo site", da "mesma origem" ou "entre sites"
Todos os navegadores modernos enviam solicitações com um
cabeçalho HTTP Sec-Fetch-Site
.
O cabeçalho tem um dos seguintes valores:
cross-site
same-site
(se refere a esquema do mesmo site)same-origin
none
É possível examinar o valor de Sec-Fetch-Site
para determinar se a solicitação
é do mesmo site, da mesma origem ou entre sites.
É possível confiar no valor do cabeçalho Sec-Fetch-Site
, porque:
- Cabeçalhos HTTP que começam com
Sec-
não podem ser modificados por JavaScript - O navegador sempre define esses títulos.