बड़ी साइटें बाहरी डोमेन पर अपनी छवियों / सीएसएस की मेजबानी क्यों करती हैं?


43

फेसबुक, ट्विटर और Google जैसी साइटें अपनी छवियों को होस्ट क्यों करती हैं और बाहरी डोमेन पर सीएसएस जैसे:

  • फेसबुक: static.ak.fbcdn.net
  • ट्विटर: a0.twimg.com
  • गूगल: ssl.gstatic.com

प्रशन):

  • प्रदर्शन है? या सुरक्षा?

जवाबों:


53

@toomanyairmiles आंशिक रूप से सही है - इस तकनीक का उद्देश्य वेब-ब्राउज़र से सर्वर तक समानांतर कनेक्शन की अनुमति देना है। वेब ब्राउज़र को एक ही होस्ट के लिए कम से कम दो एक साथ कनेक्शन की अनुमति देनी चाहिए , लेकिन कई नए ब्राउज़र 60 तक का प्रबंधन कर सकते हैं। भले ही ब्राउज़र और वेब-सर्वर (एस) के बीच समवर्ती समवर्ती कनेक्शन एक प्रमुख गति अड़चन है।

से गूगल के संसाधन :

HTTP 1.1 विनिर्देशन (खंड 8.1.4) कहता है कि ब्राउज़रों को प्रति होस्टनाम में अधिकतम दो समवर्ती कनेक्शनों की अनुमति देनी चाहिए (हालांकि नए ब्राउज़र इससे अधिक की अनुमति देते हैं: किसी सूची के लिए ब्राउज़र्सस्कोप देखें)। यदि एक HTML दस्तावेज़ में एक होस्ट पर अनुमत अधिकतम से अधिक संसाधन (जैसे CSS, जावास्क्रिप्ट, चित्र आदि) के संदर्भ हैं, तो ब्राउज़र उस संसाधन की संख्या के लिए अनुरोध जारी करता है, और बाकी को कतार में रखता है। जैसे ही कुछ अनुरोध समाप्त होते हैं, ब्राउज़र कतार में संसाधनों की अगली संख्या के लिए अनुरोध जारी करता है। यह प्रक्रिया को दोहराता है जब तक कि यह सभी संसाधनों को डाउनलोड नहीं करता है। दूसरे शब्दों में, यदि कोई पृष्ठ किसी एकल होस्ट से एक्स बाहरी संसाधनों से अधिक संदर्भ देता है, जहां एक्स प्रति मेजबान अधिकतम कनेक्शन की अनुमति है, तो ब्राउज़र को उन्हें क्रमिक रूप से डाउनलोड करना होगा, एक्स एक समय में, प्रत्येक एक्स संसाधनों के लिए 1 आरटीटी को incurring। कुल राउंड-ट्रिप का समय एन / एक्स है, जहां एन मेजबान से लाने के लिए संसाधनों की संख्या है। उदाहरण के लिए, यदि कोई ब्राउज़र प्रति होस्टनाम में 4 समवर्ती कनेक्शन की अनुमति देता है, और एक पेज एक ही डोमेन पर 100 संसाधनों का संदर्भ देता है, तो यह प्रत्येक 4 संसाधनों के लिए 1 आरटीटी और 25 आरटीटी के कुल डाउनलोड समय को लागू करेगा।

इसलिए इसके आसपास पहुंचने का तरीका या तो अलग-अलग डोमेन, या मेजबानों के लिए अनुरोधों को "तेज" करना है:

फिर से, उसी Google संसाधन से:

होस्टनामों में संतुलित समानांतर संसाधन। छवियों, CSS और अन्य बाइनरी ऑब्जेक्ट्स सहित अधिकांश स्थिर संसाधनों के लिए अनुरोधों को समानांतर किया जा सकता है। शेष सभी होस्टनामों में जितना संभव हो, इन सभी वस्तुओं के लिए अनुरोध। यदि यह संभव नहीं है, तो अंगूठे के नियम के रूप में, यह सुनिश्चित करने का प्रयास करें कि कोई भी मेजबान सभी मेजबानों की तुलना में औसत से 50% अधिक कार्य न करे। इसलिए, उदाहरण के लिए, यदि आपके पास 40 संसाधन हैं, और 4 होस्ट हैं, तो प्रत्येक मेजबान को आदर्श रूप से 10 संसाधनों की सेवा करनी चाहिए; सबसे बुरी स्थिति में, किसी भी मेजबान को 15 से अधिक सेवा नहीं करनी चाहिए। यदि आपके पास 100 संसाधन और 4 होस्ट हैं, तो प्रत्येक मेजबान को 25 संसाधनों की सेवा करनी चाहिए; किसी भी मेजबान को 38 से अधिक की सेवा नहीं देनी चाहिए।

लेकिन, पहेली में एक और टुकड़ा है। प्रत्येक अनुरोध सामान्य रूप से स्वयं के ओवरहेड्स के साथ आता है, सामान्य रूप से कुकीज़ के रूप में। चित्र, सीएसएस और जावास्क्रिप्ट जैसे स्थिर तत्वों को कुकी डेटा को प्रसारित करने की आवश्यकता नहीं है, इसलिए कुकी-कम (उप) डोमेन से उनकी सेवा करने से परिणाम तेजी से हो सकते हैं:

स्थिर सामग्री, जैसे कि छवियाँ, JS और CSS फाइलें, कुकीज़ के साथ होने की आवश्यकता नहीं है, क्योंकि इन संसाधनों के साथ कोई उपयोगकर्ता सहभागिता नहीं है। आप कुकीज़ की सेवा नहीं करने वाले डोमेन से स्थिर संसाधनों की सेवा करके अनुरोध विलंबता को कम कर सकते हैं। यह तकनीक विशेष रूप से कैश की गई स्थिर सामग्री के बड़े संस्करणों को संदर्भित करने वाले पृष्ठों के लिए विशेष रूप से उपयोगी है, जैसे कि बार-बार बदलते छवि थंबनेल, या अक्सर एक्सेस किए गए छवि अभिलेखागार। हम किसी भी पृष्ठ के लिए इस तकनीक की अनुशंसा करते हैं जो 5 से अधिक स्थिर संसाधनों का कार्य करता है। (उन पृष्ठों के लिए जो इससे कम संसाधन प्रदान करते हैं, यह एक अतिरिक्त डोमेन स्थापित करने की लागत के लायक नहीं है।)

स्थिर सामग्री परोसने के लिए कुकलेस डोमेन को आरक्षित करने के लिए, एक नया डोमेन नाम पंजीकृत करें और अपने DNS डेटाबेस को CNAME रिकॉर्ड से कॉन्फ़िगर करें जो आपके मौजूदा डोमेन A रिकॉर्ड में नए डोमेन को इंगित करता है। नए डोमेन से स्थिर संसाधनों की सेवा के लिए अपने वेब सर्वर को कॉन्फ़िगर करें, और इस डोमेन पर कहीं भी किसी भी कुकीज़ को सेट करने की अनुमति न दें। अपने वेब पृष्ठों में, स्थैतिक संसाधनों के लिए URL में डोमेन नाम का संदर्भ लें।


13

अतीत में, वेब ब्राउज़र केवल दो वस्तुओं को एक बार (अब 6 या अधिक) डाउनलोड करने में सक्षम थे, इसलिए विभिन्न डोमेन से संसाधन डाउनलोड करना एक एकल डोमेन की तुलना में तेज है। यह छवियों से लेकर जावास्क्रिप्ट तक सब कुछ पर लागू होता है।

कई कंपनियां सीडीएन का भी उपयोग करती हैं , एक उपकरण जो सुनिश्चित करता है कि अंतिम उपयोगकर्ता को सर्वर से उनका डेटा मिलता है जो भौगोलिक रूप से उनके करीब है, जो संसाधन अनुरोधों के लिए राउंडट्रिप समय को कम करके साइट प्रदर्शन को बढ़ाता है।


7

बड़ी साइटें अपनी स्थैतिक सामग्री (चित्र, JS & CSS फाइलें) को एक कंटेंट डिलीवरी नेटवर्क या CDN पर ले जाती हैं, क्योंकि आपकी सामग्री को एकाधिक में भौगोलिक रूप से फैलाया जाता है, भौगोलिक रूप से छितरी हुई सर्वर आपके पृष्ठों को उपयोगकर्ता के नजरिए से तेजी से लोड करेंगी ।

जैसा कि CDN का एक अलग डोमेन नाम है, यह डोमेन शार्डिंग लाभ भी प्रदान करता है



-1

यह अभी भी अवांछनीय कुकीज़ के लिए शीर्ष लेख के लिए भेजा जाता है बाहरी डोमेन नाम का उपयोग करते समय कोई भी कुकीज़ सेट नहीं है, इसलिए यह सामग्री लोड करने के लिए बहुत तेज़ है।

तो हाँ, यह अभी भी गति के उद्देश्य के लिए आवश्यक है।


स्वीकृत उत्तर पहले से ही कहता है कि कुकीज़ बाहरी डोमेन के लिए नहीं भेजे जाते हैं। यह उत्तर कुछ भी नहीं कहता है कि अन्य उत्तर पहले से ही कवर नहीं करते हैं।
स्टीफन Ostermiller
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.