"Aynı site" ve "aynı kaynak" terimleri sıklıkla kullanılsa da genellikle yanlış anlaşılır. Örneğin, sayfa geçişleri, fetch()
istekleri, çerezler, pop-up'ların açılması, yerleşik kaynaklar ve iFrame'ler bağlamında kullanılırlar. Bu sayfada, bu özelliklerin ne olduğu ve birbirlerinden nasıl farklı oldukları açıklanmaktadır.
Köken

"Kaynak", bir şema (protokol olarak da bilinir, ör. HTTP veya HTTPS), bir ana makine adı ve (belirtilmişse) bir bağlantı noktası kombinasyonudur. Örneğin, https://www.example.com:443/foo
URL'si için "origin" değeri https://www.example.com:443
olur.
"Aynı kaynak" ve "farklı kaynak"
Şema, ana makine adı ve bağlantı noktası kombinasyonu aynı olan web siteleri "aynı kaynak" olarak kabul edilir. Diğer tüm kaynaklar "kaynaklar arası" olarak kabul edilir.
Kaynak A | Kaynak B | "Aynı kaynak" mı yoksa "farklı kaynak" mı? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | Kaynaklar arası: farklı alanlar |
https://example.com:443 | Kaynaklar arası: farklı alt alanlar | |
https://login.example.com:443 | Kaynaklar arası: farklı alt alanlar | |
http://www.example.com:443 | Kökler arası: farklı şemalar | |
https://www.example.com:80 | Kaynaklar arası: farklı bağlantı noktaları | |
https://www.example.com:443 | Aynı kaynak: tam eşleme | |
https://www.example.com | Aynı kaynak: Örtük bağlantı noktası numarası (443) eşleşiyor |
Site

.com
ve .org
gibi üst düzey alanlar (TLD'ler) Kök Bölge Veritabanı'nda listelenir. Önceki
örnekte "site", şema, TLD ve alanın hemen önceki kısmının bir kombinasyonudur (Buna TLD+1 denir). Örneğin, https://www.example.com:443/foo
URL'si için "site" https://example.com
olur.
Herkese Açık Ek Listesi ve eTLD
.co.jp
veya .github.io
gibi öğeler içeren alanlar için yalnızca .jp
veya .io
kullanmak "siteyi" tanımlamak için yeterince spesifik değildir. Belirli bir TLD için kaydedilebilir alanların seviyesini algoritmik olarak belirlemenin bir yolu yoktur.
Bu konuda size yardımcı olması için Genel Ek Listesi'nde, etkili TLD'ler (eTLD'ler) olarak da bilinen genel eklerin listesi tanımlanmıştır. eTLD'lerin listesi publicsuffix.org/list adresinde tutulur.
ETLD içeren bir alanın "site" bölümünü tanımlamak için .com
ile örnektekiyle aynı uygulamayı uygulayın. https://www.project.github.io:443/foo
'ü örnek olarak alırsak şema https
, eTLD .github.io
ve eTLD+1 project.github.io
olur. Bu nedenle https://project.github.io
bu URL'nin "sitesi" olarak kabul edilir.

"aynı site" ve "siteler arası"
Aynı şemaya ve aynı eTLD+1'e sahip web siteleri "aynı site" olarak kabul edilir. Farklı bir şemaya veya farklı bir eTLD+1'e sahip web siteleri "siteler arası"dır.
Kaynak A | Kaynak B | "Aynı site" mi yoksa "farklı siteler" mi? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | Siteler arası: farklı alanlar |
https://login.example.com:443 | Aynı site: farklı alt alan adlarının önemi yoktur | |
http://www.example.com:443 | Siteler arası: farklı şemalar | |
https://www.example.com:80 | Aynı site: Farklı bağlantı noktaları önemli değildir | |
https://www.example.com:443 | Aynı site: tam eşleme | |
https://www.example.com | Aynı site: Bağlantı noktaları önemli değildir |
"Dizisiz aynı site"

HTTP'nin zayıf bir kanal olarak kullanılmasını önlemek için "aynı site" tanımı, sitenin bir parçası olarak URL şemasını içerecek şekilde değiştirildi.
Şema karşılaştırması içermeyen eski "aynı site" kavramı artık "şemasız aynı site" olarak adlandırılıyor. Örneğin, http://www.example.com
ve https://www.example.com
, yalnızca eTLD+1 kısmı önemli olduğu ve şema dikkate alınmadığı için şemasız aynı site olarak kabul edilir ancak aynı site olarak kabul edilmez.
Kaynak A | Kaynak B | "Dizisiz aynı site" mi yoksa "siteler arası" mı? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | Siteler arası: farklı alanlar |
https://login.example.com:443 | Dizisiz aynı site: farklı alt alan adlarının önemi yoktur | |
http://www.example.com:443 | Schemeless same-site: different schemes don't matter | |
https://www.example.com:80 | Dizisiz aynı site: Farklı bağlantı noktaları önemli değildir | |
https://www.example.com:443 | Dizisiz aynı site: tam eşleme | |
https://www.example.com | Schemeless same-site: ports don't matter |
Bir isteğin "aynı site", "aynı kaynak" veya "siteler arası" olup olmadığını kontrol etme
Tüm modern tarayıcılar Sec-Fetch-Site
HTTP başlığı ile istek gönderir.
Başlıkta aşağıdaki değerlerden biri bulunur:
cross-site
same-site
(Schemeful Same-Site'i ifade eder)same-origin
none
İsteğin aynı site, aynı kaynak veya siteler arası olup olmadığını belirlemek için Sec-Fetch-Site
değerini inceleyebilirsiniz.
Sec-Fetch-Site
başlığının değerine makul ölçüde güvenebilirsiniz, çünkü:
Sec-
ile başlayan HTTP üst bilgileri JavaScript tarafından değiştirilemez- Bu başlıkları her zaman tarayıcı ayarlar.