"एक ही साइट" और "एक ही ऑरिजिन" शब्दों का अक्सर इस्तेमाल किया जाता है. हालांकि, अक्सर इन शब्दों को गलत तरीके से समझा जाता है. उदाहरण के लिए, इनका इस्तेमाल पेज ट्रांज़िशन,
fetch()
अनुरोधों, कुकी, पॉप-अप खोलने, एम्बेड किए गए रिसॉर्स, और
इफ़्रेम के संदर्भ में किया जाता है. इस पेज पर बताया गया है कि ये क्या हैं और ये एक-दूसरे से कैसे अलग हैं.
शुरुआत की जगह

"ऑरिजिन", स्कीम (इसे प्रोटोकॉल भी कहा जाता है, जैसे कि HTTP या HTTPS), होस्टनेम, और पोर्ट (अगर बताया गया हो) का कॉम्बिनेशन होता है. उदाहरण के लिए, https://www.example.com:443/foo
का यूआरएल दिया गया है,
तो "ऑरिजिन" https://www.example.com:443
है.
"एक ही सोर्स" और "अलग-अलग सोर्स"
जिन वेबसाइटों के स्कीम, होस्टनेम, और पोर्ट का कॉम्बिनेशन एक जैसा होता है उन्हें "एक ही ऑरिजिन" माना जाता है. बाकी सभी को "क्रॉस-ऑरिजिन" माना जाता है.
ऑरिजिन A | ऑरिजिन B | "एक ही सोर्स" या "अलग-अलग सोर्स"? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | क्रॉस-ऑरिजिन: अलग-अलग डोमेन |
https://example.com:443 | अलग-अलग ऑरिजिन: अलग-अलग सबडोमेन | |
https://login.example.com:443 | अलग-अलग ऑरिजिन: अलग-अलग सबडोमेन | |
http://www.example.com:443 | क्रॉस-ऑरिजिन: अलग-अलग स्कीम | |
https://www.example.com:80 | अलग-अलग ऑरिजिन: अलग-अलग पोर्ट | |
https://www.example.com:443 | एक ही सोर्स: एग्ज़ैक्ट मैच | |
https://www.example.com | एक ही सोर्स: पोर्ट नंबर (443) मैच करता है |
साइट

.com
और .org
जैसे टॉप लेवल डोमेन (टीएलडी), रूट ज़ोन डेटाबेस में शामिल होते हैं. पिछले
उदाहरण में, "साइट", स्कीम, TLD, और डोमेन के ठीक पहले के हिस्से (हम इसे TLD+1 कहते हैं) का कॉम्बिनेशन है. उदाहरण के लिए, https://www.example.com:443/foo
का यूआरएल दिया गया है, तो "साइट" https://example.com
है.
पब्लिक सफ़िक्स की सूची और ईटीएलडी
.co.jp
या .github.io
जैसे एलिमेंट वाले डोमेन के लिए, सिर्फ़ .jp
या
.io
का इस्तेमाल करके "साइट" की पहचान नहीं की जा सकती. किसी खास टीएलडी के लिए, रजिस्टर किए जा सकने वाले डोमेन के लेवल का पता लगाने के लिए, एल्गोरिदम का इस्तेमाल नहीं किया जा सकता.
इसकी मदद करने के लिए, सार्वजनिक सफ़िक्स की सूची में सार्वजनिक सफ़िक्स की सूची दी गई है. इन्हें इफ़ेक्टिव टीएलडी (eTLDs) भी कहा जाता है. publicsuffix.org/list पर, ईटीएलडी की सूची उपलब्ध है.
किसी ऐसे डोमेन के "साइट" हिस्से की पहचान करने के लिए जिसमें ईटीएलडी शामिल है, .com
के उदाहरण में बताए गए तरीके का इस्तेमाल करें. उदाहरण के लिए, https://www.project.github.io:443/foo
के लिए स्कीम https
, eTLD .github.io
, और eTLD+1 project.github.io
है. इसलिए, इस यूआरएल के लिए https://project.github.io
को "साइट" माना जाता है.

"एक ही साइट" और "अलग-अलग साइट"
एक ही स्कीम और एक ही eTLD+1 वाली वेबसाइटों को "एक ही साइट" माना जाता है. जिन वेबसाइटों का स्कीम या eTLD+1 अलग होता है उन्हें "क्रॉस-साइट" कहा जाता है.
ऑरिजिन A | ऑरिजिन B | "एक ही साइट" या "अलग-अलग साइट"? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | अलग-अलग साइटें: अलग-अलग डोमेन |
https://login.example.com:443 | एक ही साइट: अलग-अलग सबडोमेन का कोई फ़र्क़ नहीं पड़ता | |
http://www.example.com:443 | क्रॉस-साइट: अलग-अलग स्कीम | |
https://www.example.com:80 | एक ही साइट: अलग-अलग पोर्ट का कोई फ़र्क़ नहीं पड़ता | |
https://www.example.com:443 | एक ही साइट: एग्ज़ैक्ट मैच | |
https://www.example.com | एक ही साइट: पोर्ट का कोई फ़र्क़ नहीं पड़ता |
"एक ही साइट पर मौजूद स्कीमलेस लिंक"

"एक ही साइट" की परिभाषा बदल दी गई है, ताकि साइट के हिस्से के तौर पर यूआरएल स्कीम को शामिल किया जा सके. इससे, एचटीटीपी का इस्तेमाल कमज़ोर चैनल के तौर पर होने से रोका जा सकेगा.
स्कीम की तुलना किए बिना "एक ही साइट" के पुराने कॉन्सेप्ट को अब "बिना स्कीम वाली एक ही साइट" कहा जाता है. उदाहरण के लिए, http://www.example.com
और
https://www.example.com
को स्कीम के बिना एक ही साइट माना जाता है, लेकिन एक ही साइट नहीं, क्योंकि सिर्फ़ eTLD+1 वाला हिस्सा मायने रखता है और स्कीम को ध्यान में नहीं रखा जाता.
ऑरिजिन A | ऑरिजिन B | "बिना स्कीम वाला एक ही साइट" या "क्रॉस-साइट"? |
---|---|---|
https://www.example.com:443 | https://www.evil.com:443 | अलग-अलग साइटें: अलग-अलग डोमेन |
https://login.example.com:443 | एक ही साइट पर मौजूद, स्कीम के बिना यूआरएल: अलग-अलग सबडोमेन का कोई फ़र्क़ नहीं पड़ता | |
http://www.example.com:443 | बिना स्कीम वाली सेम-साइट: अलग-अलग स्कीम का कोई फ़र्क़ नहीं पड़ता | |
https://www.example.com:80 | एक ही साइट पर मौजूद, स्कीम के बिना: अलग-अलग पोर्ट का कोई फ़र्क़ नहीं पड़ता | |
https://www.example.com:443 | एक ही साइट पर मौजूद स्कीमा के बिना: एग्ज़ैक्ट मैच | |
https://www.example.com | स्कीमलेस सेम-साइट: पोर्ट का कोई फ़र्क़ नहीं पड़ता |
यह कैसे पता लगाएं कि कोई अनुरोध "same-site", "same-origin" या "cross-site" है
सभी मॉडर्न ब्राउज़र, Sec-Fetch-Site
एचटीटीपी हेडर के साथ अनुरोध भेजते हैं.
हेडर में इनमें से कोई एक वैल्यू हो सकती है:
cross-site
same-site
(इसका मतलब है कि एक ही साइट पर स्कीमफ़ुल तरीके से ट्रैफ़िक भेजा जा रहा है)same-origin
none
Sec-Fetch-Site
की वैल्यू की जांच करके यह पता लगाया जा सकता है कि अनुरोध, एक ही साइट, एक ही ऑरिजिन या क्रॉस-साइट से है या नहीं.
Sec-Fetch-Site
हेडर की वैल्यू पर भरोसा किया जा सकता है, क्योंकि:
Sec-
से शुरू होने वाले एचटीटीपी हेडर में JavaScript से बदलाव नहीं किया जा सकता- ब्राउज़र हमेशा ये हेडिंग सेट करता है.