خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت

تازن سالن ۾، فرنٽ-اينڊ منصوبن کي بهتر ڪرڻ لاءِ وڌيڪ ۽ وڌيڪ پليٽ فارمز خود ميزباني جا موقعا پيش ڪن ٿا يا ٽئين پارٽي جي وسيلن کي پراکسي ڪرڻ. Akamai توهان کي سيٽ ڪرڻ جي اجازت ڏئي ٿي مخصوص پيراگراف خود ٺاهيل URLs لاءِ. Cloudflare وٽ Edge Workers ٽيڪنالاجي آهي. Fasterzine ڪري سگهو ٿا ٻيهر لکڻ صفحن تي URLs ته جيئن اهي سائيٽ جي مکيه ڊومين تي واقع ٽئين پارٽي وسيلن ڏانهن اشارو ڪن.

خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت

جيڪڏهن توهان کي خبر آهي ته توهان جي پروجيڪٽ ۾ استعمال ٿيندڙ ٽئين پارٽي جون خدمتون گهڻو ڪري تبديل نه ٿيون ٿين، ۽ انهن کي گراهڪن تائين پهچائڻ جو عمل بهتر ٿي سگهي ٿو، ته پوءِ توهان شايد اهڙين خدمتن کي پراکسي ڪرڻ بابت سوچي رهيا آهيو. هن طريقي سان، توهان انهن وسيلن کي پنهنجي صارفين جي ويجهو آڻي سگهو ٿا ۽ ڪلائنٽ جي پاسي تي انهن جي ڪيشنگ تي وڌيڪ مڪمل ڪنٽرول حاصل ڪري سگهو ٿا. اهو، اضافي طور تي، توهان کي صارفين کي مشڪلاتن کان بچائڻ جي اجازت ڏئي ٿو "حادثي" جي ٽئين پارٽي جي خدمت يا ان جي ڪارڪردگي جي خراب ٿيڻ جي ڪري.

سٺو: بهتر ڪارڪردگي

ڪنهن ٻئي جي وسيلن جي خود ميزباني هڪ تمام واضح انداز ۾ ڪارڪردگي بهتر بڻائي ٿي. برائوزر کي ٻيهر DNS تائين رسائي جي ضرورت ناهي، ان کي TCP ڪنيڪشن قائم ڪرڻ جي ضرورت ناهي ۽ ٽئين پارٽي ڊومين تي TLS هٿ ملائڻ جي ضرورت ناهي. توهان ڏسي سگهو ٿا ته ڪيئن خود ميزباني ڪنهن ٻئي جي وسيلن جي ڪارڪردگي تي اثر انداز ٿئي ٿي هيٺين ٻن انگن اکرن جو مقابلو ڪندي.

خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت
ٽئين پارٽي جا وسيلا ٻاهرين ذريعن کان ڊائون لوڊ ڪيا ويا آهن (جنهن مان ورتو ويو آهي هتي کان)

خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت
ٽئين پارٽي جا وسيلا ساڳي جاءِ تي محفوظ ڪيا ويا آهن جيئن سائيٽ جي باقي مواد (جنهن مان ورتو ويو آهي هتي کان)

صورتحال ان حقيقت جي ڪري به بهتر ٿي چڪي آهي ته برائوزر ملٽي پلڪس ڪرڻ جي صلاحيت استعمال ڪندو ۽ HTTP/2 ڪنيڪشن مان ڊيٽا کي ترجيح ڏيندو جيڪو اڳ ۾ ئي مکيه ڊومين سان قائم ڪيو ويو آهي.

جيڪڏهن توهان ٽئين پارٽي وسيلن جي ميزباني نه ڪندا آهيو، پوءِ جيئن اهي ڊومين مان لوڊ ڪيا ويندا مکيه هڪ کان مختلف، انهن کي ترجيح نه ٿي ڏئي سگهجي. اهو انهن کي ڪلائنٽ جي بينڊوڊٿ لاءِ هڪ ٻئي سان مقابلو ڪرڻ جو سبب بڻائيندو. اهو نتيجو ٿي سگهي ٿو لوڊ ڪرڻ وقت مواد لاءِ نازڪ صفحو ٺاهڻ لاءِ جيڪو گهڻو ڊگهو آهي ان کان وڌيڪ جيڪو مثالي حالتن ۾ حاصل ڪري سگهجي ٿو. هتي HTTP/2 prioritization تي ڳالهايو جيڪو هن سڀني کي چڱي طرح بيان ڪري ٿو.

اهو فرض ڪري سگهجي ٿو ته ٻاهرين وسيلن جي ڳنڍڻ ۾ خاصيتن جو استعمال preconnect مسئلو حل ڪرڻ ۾ مدد ڪندو. بهرحال، جيڪڏهن انهن مان تمام گهڻا آهن مختلف ڊومينز جون لنڪس، اهو اصل ۾ ڪميونيڪيشن لائن کي اوورلوڊ ڪري سگهي ٿو سڀ کان اهم لمحو.

جيڪڏهن توهان ٽئين پارٽي وسيلن جي ميزباني پاڻ ڪريو ٿا، توهان ڪنٽرول ڪري سگهو ٿا ته اهي وسيلا ڪلائنٽ کي ڪيئن ڏنا ويا آهن. يعني، اسان هيٺ ڏنل ڳالهين بابت ڳالهائي رهيا آهيون:

  • توھان پڪ ڪري سگھوٿا ته ڊيٽا ڪمپريشن الگورٿم جيڪو بھترين مناسب آھي ھر برائوزر استعمال ڪيو ويو آھي (Brotli/gzip).
  • توهان وسيلن لاءِ ڪيشنگ وقت وڌائي سگهو ٿا جيڪي عام طور تي خاص طور تي ڊگھا نه هوندا آهن، جيتوڻيڪ سڀ کان وڌيڪ معروف فراهم ڪندڙن سان (مثال طور، GA ٽيگ لاءِ لاڳاپيل قدر 30 منٽن تي مقرر ڪئي وئي آهي).

توھان TTL کي وسيلا لاءِ به وڌائي سگھو ٿا، چئو، ھڪ سال سان لاڳاپيل مواد کي پنھنجي ڪيشنگ مئنيجمينٽ حڪمت عملي ۾ شامل ڪري (URL hashes، ورجننگ، وغيره). اسان هيٺ ان بابت ڳالهائينداسين.

▍ ٽئين پارٽي جي خدمتن جي آپريشن يا انهن جي بندش ۾ رڪاوٽن جي خلاف تحفظ

ٽئين پارٽي جي وسيلن جي خود ميزباني جو هڪ ٻيو دلچسپ پاسو اهو آهي ته اهو توهان کي ٽئين پارٽي جي خدمتن جي بندش سان لاڳاپيل خطرن کي گهٽائڻ جي اجازت ڏئي ٿو. اچو ته فرض ڪريون ته ٽئين پارٽي A/B ٽيسٽنگ حل توهان استعمال ڪري رهيا آهيو بلاڪنگ اسڪرپٽ طور لاڳو ڪيو ويو آهي جيڪو صفحي جي هيڊ سيڪشن ۾ لوڊ ٿئي ٿو. هي اسڪرپٽ سست لوڊ ٿئي ٿي. جيڪڏهن لاڳاپيل اسڪرپٽ لوڊ ٿيڻ ۾ ناڪام ٿي، صفحو خالي ٿي ويندو. جيڪڏهن لوڊ ٿيڻ ۾ تمام گهڻو وقت لڳندو، ته صفحو هڪ ڊگهي دير سان ظاهر ٿيندو. يا، فرض ڪريو پروجيڪٽ ٽئين پارٽي CDN وسيلن مان ڊائون لوڊ ڪيل لائبريري استعمال ڪري ٿو. اچو ته تصور ڪريو ته هي وسيلو ناڪامي جو تجربو ڪيو ويو يا ڪنهن خاص ملڪ ۾ بند ڪيو ويو. اهڙي صورتحال سائيٽ جي منطق جي خلاف ورزي کي ڏسندي.

اهو معلوم ڪرڻ لاءِ ته توهان جي سائيٽ ڪيئن ڪم ڪندي آهي جڏهن ڪجهه خارجي خدمت دستياب ناهي، توهان استعمال ڪري سگهو ٿا SPOF سيڪشن تي webpagetest.org.

خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت
webpagetest.org تي SPOF سيڪشن

▍براؤزر ۾ مواد جي ڪيشنگ سان مسئلن بابت ڇا؟ (اشارو: اهو هڪ افسانو آهي)

توهان شايد سوچيو ته عوامي CDNs استعمال ڪندي خودڪار طريقي سان بهتر وسيلن جي ڪارڪردگي ڏانهن وڌندي، ڇو ته اهي خدمتون تمام اعلي معيار جا نيٽ ورڪ آهن ۽ سڄي دنيا ۾ ورهايل آهن. پر حقيقت ۾ هر شيء ٿورو وڌيڪ پيچيده آهي.

اچو ته چئو ته اسان وٽ ڪيترائي مختلف سائيٽون آهن: website1.com، website2.com، website3.com. اهي سڀئي سائيٽون استعمال ڪن ٿيون jQuery لائبريري. اسان ان کي سي ڊي اين استعمال ڪندي ان سان ڳنڍيون ٿا، مثال طور - googleapis.com. توهان اميد ڪري سگهو ٿا ته برائوزر هڪ ڀيرو ڊائونلوڊ ڪرڻ ۽ لائبريري کي ڪيش ڪرڻ، ۽ پوءِ ان کي ٽنهي سائيٽن تي استعمال ڪريو. اهو نيٽ ورڪ تي لوڊ گھٽائي سگھي ٿو. ٿي سگهي ٿو ته اهو توهان کي پئسا بچائڻ جي اجازت ڏيندو ڪٿي ڪٿي ۽ وسيلن جي ڪارڪردگي کي بهتر ڪرڻ ۾ مدد ڪندي. عملي نقطي نظر کان، هر شيء مختلف نظر اچي ٿي. مثال طور، سفاري نالي هڪ خاصيت آهي ذھني طور تي باخبر رکڻ جو عمل: ڪيش دستاويز جي ماخذ ۽ ٽئين پارٽي جي وسيلن جي ماخذ جي بنياد تي ڊبل ڪيچ استعمال ڪندو آهي. هتي هن موضوع تي سٺو مضمون.

پراڻي اڀياس ياهو и ڪريو، انهي سان گڏ وڌيڪ تازو اڀياس Paul Calvano، ڏيکاريو ته وسيلن کي برائوزر ڪيچ ۾ محفوظ نه ڪيو ويو آهي جيستائين اسان توقع ڪري سگهون ٿا: "هڪ پروجيڪٽ جي پنهنجي ۽ ٽئين پارٽي وسيلن جي ڪيشنگ وقت جي وچ ۾ هڪ سنگين فرق آهي. اسان CSS ۽ ويب فونٽس بابت ڳالهائي رهيا آهيون. يعني، 95 سيڪڙو ڏيهي فونٽس جي ڪيش لائف هڪ هفتي کان وڌيڪ هوندي آهي، جڏهن ته 50 سيڪڙو ٽئين پارٽي فونٽس جي ڪيش لائف هڪ هفتي کان به گهٽ هوندي آهي! هي ويب ڊولپرز کي هڪ زبردست سبب ڏئي ٿو پاڻ کي فونٽ فائلن کي ميزباني ڪرڻ لاءِ!

نتيجي طور، جيڪڏھن توھان ٻين ماڻھن جي مواد کي ميزباني ڪندا آھيو، توھان براؤزر ڪيشنگ جي ڪري ڪارڪردگيءَ جي ڪنھن بہ مسئلي کي نوٽيس نه ڪندا.

هاڻي ته اسان ٽئين پارٽي جي خود ميزباني جي طاقتن کي ڍڪي ڇڏيو آهي، اچو ته ان بابت ڳالهايون ته ڪيئن هن طريقي جي سٺي عمل درآمد کي خراب کان.

خراب: شيطان تفصيل ۾ آهي

ٽئين پارٽي وسيلن کي توهان جي پنهنجي ڊومين ڏانهن منتقل ڪرڻ خودڪار طريقي سان نه ٿو ڪري سگهجي بغير يقيني بڻائڻ جي ته اهڙي وسيلن کي صحيح طريقي سان ڪيش ڪيو ويو آهي.

هتي جي بنيادي مسئلن مان هڪ آهي ڪيشنگ وقت. مثال طور، ورزن جي معلومات ٽئين پارٽي اسڪرپٽ نالن ۾ شامل ڪئي وئي آهي جهڙوڪ: jquery-3.4.1.js. اهڙي فائل مستقبل ۾ تبديل نه ٿيندي، ۽ نتيجي طور ان جي ڪيشنگ سان ڪو به مسئلو نه ٿيندو.

پر جيڪڏھن ڪجھ ورزننگ اسڪيم استعمال نه ڪئي وئي آھي جڏھن فائلن سان ڪم ڪندي، ڪيش ٿيل اسڪرپٽ، جنھن جو مواد تبديل ٿي ويندو آھي جڏھن ته فائل جو نالو تبديل نه ٿيندو آھي، پراڻو ٿي سگھي ٿو. اهو هڪ سنگين مسئلو ٿي سگهي ٿو، ڇاڪاڻ ته اهو، مثال طور، خودڪار حفاظتي پيچ کي اجازت نٿو ڏئي ته لکت ۾ شامل ڪيو وڃي جيڪي گراهڪن کي جلدي ممڪن طور تي وصول ڪرڻ جي ضرورت آهي. ڊولپر کي ڪوشش ڪرڻي پوندي ته اهڙين اسڪرپٽس کي ڪيش ۾ تازه ڪاري ڪري. ان کان علاوه، اهو ايپليڪيشن جي ناڪامي سبب ٿي سگهي ٿو حقيقت اها آهي ته ڪوڊ ڪلائنٽ تي ڪيش مان استعمال ٿيل ڪوڊ ڪوڊ جي جديد ورزن کان مختلف آهي جنهن لاء پروجيڪٽ جو سرور حصو ٺهيل آهي.

سچ، جيڪڏهن اسان مواد جي باري ۾ ڳالهايون ٿا جيڪي بار بار اپڊيٽ ڪيا ويندا آهن (ٽيگ مينيجرز، A/B جاچ لاءِ حل)، پوءِ سي ڊي اين ٽولز استعمال ڪندي انهن کي ڪيش ڪرڻ هڪ ڪم آهي جيڪو حل ڪري سگهجي ٿو، پر تمام گهڻو پيچيده آهي. خدمتون جهڙوڪ ڪمانڊر ايڪٽ، هڪ ٽيگ مئنيجمينٽ حل، نئين ورزن شايع ڪرڻ وقت ويب هوڪس استعمال ڪريو. هي توهان کي سي ڊي اين تي ڪيش فلش کي زبردستي ڪرڻ جي صلاحيت ڏئي ٿو، يا، اڃا بهتر، هيش يا يو آر ايل اپڊيٽ کي مجبور ڪرڻ جي صلاحيت.

▍ گراهڪن کي مواد جي موافقت پهچائڻ

ان کان علاوه، جڏهن اسان ڪيشنگ جي باري ۾ ڳالهايون ٿا، اسان کي حقيقت ۾ رکڻ جي ضرورت آهي ته CDN تي استعمال ڪيل ڪيشنگ سيٽنگون ڪجهه ٽئين پارٽي وسيلن لاء مناسب نه هجن. مثال طور، اهڙا وسيلا استعمال ڪري سگھن ٿا صارف ايجنٽ سنيفنگ (ايڊاپٽو سرونگ) ٽيڪنالاجي کي مخصوص برائوزرن جي خدمت ڪرڻ لاءِ مواد جي ورزن سان خاص طور تي انهن برائوزرن لاءِ. اهي ٽيڪنالاجيون باقاعده اظهار تي ڀاڙين ٿيون، يا HTTP هيڊر جي معلومات جي ڊيٽابيس تي، برائوزر جي صلاحيتن کي معلوم ڪرڻ لاء. User-Agent. هڪ دفعو انهن کي خبر آهي ته ڪهڙي برائوزر سان اهي ڪم ڪري رهيا آهن، اهي ان لاءِ ٺهيل مواد ڏين ٿا.

هتي توهان ٻه خدمتون ياد ڪري سگهو ٿا. پهريون آهي googlefonts.com. ٻيو آهي polyfill.io. گوگل فانٽ سروس مهيا ڪري ٿي، هڪ خاص وسيلا لاءِ، مختلف سي ايس ايس ڪوڊ، برائوزر جي صلاحيتن تي منحصر ڪري ٿو (Woff2 وسيلن کي استعمال ڪندي لنڪس ڏيڻ. unicode-range).

هتي مختلف برائوزرن مان ٺاهيل گوگل فونٽس جي ڪجهه سوالن جا نتيجا آهن.

خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت
گوگل فانٽ جي پڇا ڳاڇا جا نتيجا ڪروم کان

خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت
IE10 کان جاري ڪيل گوگل فانٽ سوال جو نتيجو

Polyfill.io برائوزر کي صرف پوليفيلز ڏئي ٿو جيڪا ان جي ضرورت آهي. اهو ڪارڪردگي سببن لاء ڪيو ويندو آهي.

مثال طور، اچو ته هڪ نظر رکون ته ڇا ٿيندو جيڪڏهن توهان هيٺ ڏنل درخواست کي مختلف برائوزرن مان هلائيندا آهيو: https://polyfill.io/v3/polyfill.js?features=default

IE10 کان جاري ڪيل اهڙي درخواست جي جواب ۾، 34 KB ڊيٽا وصول ڪئي ويندي. ۽ ان جو جواب، ڪروم مان جاري ڪيل، خالي ٿي ويندو.

ناراض: ڪجهه رازداري خيالات

هي نقطو آخري ترتيب ۾ آهي، پر گهٽ ۾ گهٽ اهم ناهي. نقطي اهو آهي ته منصوبي جي مکيه ڊومين تي يا ان جي ذيلي ڊومين تي ٽئين پارٽي جي وسيلن جي خود ميزباني صارفين جي رازداري کي خطرو ڪري سگهي ٿي ۽ مکيه ويب پروجيڪٽ تي منفي اثر انداز ڪري سگهي ٿي.

جيڪڏهن توهان جو CDN سسٽم صحيح طرح سان ترتيب نه ڏنو ويو آهي، ته توهان ختم ڪري سگهو ٿا پنهنجي ڊومين جي ڪوڪيز کي ٽئين پارٽي جي خدمت ڏانهن موڪلڻ. جيڪڏهن مناسب فلٽرنگ سي ڊي اين جي سطح تي منظم نه ڪئي وئي آهي، ته پوء توهان جي سيشن ڪوڪيز، جيڪي عام طور تي جاوا اسڪرپٽ ۾ استعمال نه ٿيون ڪري سگهجن. httponly)، هڪ غير ملڪي ميزبان ڏانهن موڪلي سگھجي ٿو.

اهو ئي آهي جيڪو ٽريڪٽرن جهڙوڪ يوليرين يا ڪريٽو سان ٿي سگهي ٿو. ٽئين پارٽي ٽريڪرن شايد ڪوڪيز ۾ هڪ منفرد سڃاڻپ ڪندڙ مقرر ڪيو هجي. جيڪڏهن اهي سائيٽ جي مواد جو حصو هئا، اهي سڃاڻپ ڪندڙ کي پنهنجي صوابديد تي پڙهي سگهندا هئا جڏهن صارف مختلف ويب وسيلن سان ڪم ڪري رهيو هو.

اهي ڏينهن، اڪثر برائوزرن ۾ هن قسم جي ٽريڪٽر رويي جي خلاف تحفظ شامل آهن. نتيجي طور، ٽريڪٽر هاڻي ٽيڪنالاجي استعمال ڪندا آهن CNAME Cloaking، مختلف منصوبن لاءِ پنهنجون اسڪرپٽ جي طور تي نقاب پوش. يعني، ٽريڪٽر سائيٽ جي مالڪن کي پيش ڪن ٿا هڪ خاص ڊومين لاءِ انهن جي سيٽنگن ۾ هڪ CNAME شامل ڪرڻ، جنهن جو پتو عام طور تي اکرن جي بي ترتيب سيٽ وانگر نظر اچي ٿو.

جيتوڻيڪ اها سفارش نه ڪئي وئي آهي ته ويب سائيٽ ڪوڪيز کي سڀني ذيلي ڊومينز تي دستياب ڪيو وڃي (مثال طور - *.website.com)، ڪيتريون ئي سائيٽون ائين ڪن ٿيون. انهي حالت ۾، اهڙيون ڪوڪيز خودڪار طور تي ٽين پارٽي ٽريڪٽر ڏانهن موڪليا ويا آهن. نتيجي طور، اسان هاڻي ڪنهن به رازداري بابت ڳالهائي نٿا سگهون.

انهي سان گڏ، ساڳئي شيء HTTP هيڊر سان ٿئي ٿي ڪلائنٽ- اشارو, جيڪي صرف مکيه ڊومين ڏانهن موڪليا ويا آهن، ڇاڪاڻ ته اهي ٺاهڻ لاء استعمال ڪري سگهجن ٿيون ڊجيٽل فنگر پرنٽ استعمال ڪندڙ. پڪ ڪريو ته سي ڊي اين سروس جيڪا توهان استعمال ڪندا آهيو انهن هيڊرن کي صحيح طرح سان فلٽر ڪري ٿو.

نتيجو

جيڪڏهن توهان جلد ئي ٽئين پارٽي جي وسيلن جي خود ميزباني کي لاڳو ڪرڻ جي منصوبابندي ڪري رهيا آهيو، مون کي توهان کي ڪجهه صلاح ڏيو:

  • پنهنجي اهم JS لائبريرين، فونٽس ۽ CSS فائلن کي ميزباني ڪريو. اهو سائيٽ جي ناڪامي يا ڪارڪردگي جي خراب ٿيڻ جي خطري کي گهٽائي ڇڏيندو، ڇاڪاڻ ته سائيٽ لاءِ اهم وسيلا موجود نه هجڻ جي ڪري ٽئين پارٽي جي خدمت جي غلطي جي ڪري.
  • CDN تي ٽئين پارٽي جي وسيلن کي ڪيش ڪرڻ کان اڳ، پڪ ڪريو ته ڪنهن قسم جو ورجننگ سسٽم استعمال ڪيو ويندو آهي جڏهن انهن جي فائلن جو نالو رکيو ويندو آهي، يا اهو ته توهان انهن وسيلن جي لائف سائيڪل کي منظم ڪري سگهو ٿا دستي طور تي يا خودڪار طريقي سان CDN ڪيش کي ري سيٽ ڪندي جڏهن هڪ نئون ورزن شايع ڪيو. لکت.
  • توهان جي CDN، پراکسي سرور، ۽ ڪيش سيٽنگن جي باري ۾ تمام محتاط رهو. هي توهان کي توهان جي پروجيڪٽ يا هيڊرز کي ڪوڪيز موڪلڻ کان روڪڻ جي اجازت ڏيندو Client-Hints ٽئين پارٽي خدمتون.

پيارا پڙهندڙن! ڇا توهان ٻين ماڻهن جي مواد کي پنهنجي سرور تي ميزباني ڪندا آهيو جيڪي توهان جي منصوبن جي آپريشن لاءِ انتهائي اهم آهن؟

خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت
خود ميزباني ٽئين پارٽي جا وسيلا: سٺو، خراب، بدصورت

جو ذريعو: www.habr.com

تبصرو شامل ڪريو