የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው

በቅርብ ዓመታት ውስጥ፣ የፊት-መጨረሻ ፕሮጀክቶችን ለማመቻቸት ቁጥራቸው ከጊዜ ወደ ጊዜ እየጨመረ የመጣ መድረኮች ለራስ ማስተናገድ ወይም የሶስተኛ ወገን ሀብቶችን ተኪ ለማድረግ እድሎችን ይሰጣሉ። Akamai እንዲያዘጋጁ ይፈቅድልዎታል። የተወሰኑ መለኪያዎች ለራስ-የተፈጠሩ ዩአርኤሎች። Cloudflare Edge Workers ቴክኖሎጂ አለው። Fasterzine ይችላል እንደገና ጻፍ በገጾቹ ላይ ያሉ ዩአርኤሎች በጣቢያው ዋና ጎራ ላይ የሚገኙትን የሶስተኛ ወገን ሀብቶችን እንዲያመለክቱ።

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው

በፕሮጀክትዎ ውስጥ ጥቅም ላይ የሚውሉት የሶስተኛ ወገን አገልግሎቶች ብዙ ጊዜ እንደማይለወጡ ካወቁ እና ለደንበኞች የማድረስ ሂደት ሊሻሻል እንደሚችል ካወቁ እንደዚህ አይነት አገልግሎቶችን ስለመወከል እያሰቡ ይሆናል። በዚህ አቀራረብ እነዚህን ሃብቶች ወደ ተጠቃሚዎችዎ ያቅርቡ እና በደንበኛው በኩል ባለው መሸጎጫ ላይ የበለጠ የተሟላ ቁጥጥር ማግኘት ይችላሉ። ይህ በተጨማሪ, በሶስተኛ ወገን አገልግሎት "ብልሽት" ወይም በአፈፃፀሙ መበላሸት ምክንያት ተጠቃሚዎችን ከሚመጡ ችግሮች ለመጠበቅ ያስችልዎታል.

ጥሩ: የተሻሻለ አፈጻጸም

የሌላ ሰው ሀብትን በራስ ማስተናገድ አፈጻጸምን በጣም ግልጽ በሆነ መንገድ ያሻሽላል። አሳሹ እንደገና ዲ ኤን ኤስ መድረስ አያስፈልገውም፣ የTCP ግንኙነት መመስረት እና በሶስተኛ ወገን ጎራ ላይ TLS መጨባበጥ አያስፈልገውም። የሚከተሉትን ሁለት አሃዞች በማነጻጸር የሌላ ሰውን ሃብት በራስ ማስተናገድ እንዴት በአፈጻጸም ላይ እንደሚኖረው ማየት ይችላሉ።

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው
የሶስተኛ ወገን ሀብቶች ከውጫዊ ምንጮች ይወርዳሉ (የተወሰዱት ከ እዚህ)

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው
የሶስተኛ ወገን ሀብቶች ከተቀሩት የጣቢያው ቁሳቁሶች ጋር በተመሳሳይ ቦታ ይከማቻሉ (ከ እዚህ)

እንዲሁም አሳሹ ከዋናው ጎራ ጋር ቀደም ሲል ከተመሰረተው HTTP/2 ግንኙነት መረጃን የማባዛት እና ቅድሚያ የመስጠት ችሎታን ስለሚጠቀም ሁኔታው ​​ተሻሽሏል።

የሶስተኛ ወገን ሀብቶችን ካላስተናገዱ, ከዋናው የተለየ ጎራ ስለሚጫኑ, ቅድሚያ ሊሰጣቸው አይችልም. ይህ ለደንበኛው የመተላለፊያ ይዘት እርስ በርስ እንዲወዳደሩ ያደርጋቸዋል. ይህ ገጽን ለመገንባት ወሳኝ የሆኑ ይዘቶች የመጫኛ ጊዜዎችን ሊያስከትል ይችላል ይህም ተስማሚ በሆኑ ሁኔታዎች ውስጥ ሊደረስበት ከሚችለው በጣም ረዘም ያለ ነው. እዚህ ይህን ሁሉ በደንብ የሚያብራራውን በ HTTP/2 ቅድሚያ መስጠት ላይ ተናገር።

ከውጫዊ ሀብቶች ጋር በሚገናኙበት ጊዜ የባህሪያት አጠቃቀምን መገመት ይቻላል preconnect ችግሩን ለመፍታት ይረዳል ። ነገር ግን፣ ወደ ተለያዩ ጎራዎች የሚወስዱት እነዚህ አገናኞች በጣም ብዙ ከሆኑ የግንኙነት መስመሩን በጣም ወሳኝ በሆነ ሰዓት ላይ መጫን ይችላል።

የሶስተኛ ወገን ሀብቶችን እራስዎ ካዘጋጁ, እነዚህ ሀብቶች ለደንበኛው እንዴት በትክክል እንደሚሰጡ መቆጣጠር ይችላሉ. ይኸውም ስለሚከተሉት ነገሮች እየተነጋገርን ነው።

  • ለእያንዳንዱ አሳሽ በጣም የሚስማማው የመረጃ መጨመሪያ ስልተ ቀመር (Brotli/gzip) መጠቀሙን ማረጋገጥ ይችላሉ።
  • በተለይ ረጅም ላልሆኑ ሀብቶች የመሸጎጫ ጊዜውን ከፍ ማድረግ ይችላሉ፣ በጣም ታዋቂ ከሆኑ አቅራቢዎች ጋር እንኳን (ለምሳሌ ፣ የ GA መለያ ተጓዳኝ እሴት ወደ 30 ደቂቃዎች ተቀናብሯል)።

ጠቃሚ ይዘትን ወደ መሸጎጫ አስተዳደር ስትራቴጂዎ (ዩአርኤል ሃሽ፣ እትም፣ ወዘተ) ውስጥ በማካተት TTLን ለአንድ ግብአት ለምሳሌ ለአንድ አመት ማራዘም ትችላለህ። ከዚህ በታች ስለዚህ ጉዳይ እንነጋገራለን.

▍በሶስተኛ ወገን አገልግሎቶች ወይም በመዘጋታቸው ውስጥ መቆራረጦችን መከላከል

የሶስተኛ ወገን ሀብቶችን በራስ የማስተናገድ ሌላው አስደሳች ገጽታ ከሶስተኛ ወገን አገልግሎቶች መቋረጥ ጋር የተያያዙ አደጋዎችን ለመቀነስ ያስችላል። እየተጠቀሙበት ያለው የሶስተኛ ወገን A/B ሙከራ መፍትሄ በገጹ ራስ ክፍል ላይ የሚጫነው እንደ እገዳ ስክሪፕት ነው ብለን እናስብ። ይህ ስክሪፕት ቀስ ብሎ ይጫናል። ተጓዳኝ ስክሪፕት መጫን ካልተሳካ ገጹ ባዶ ይሆናል። ለመጫን በጣም ረጅም ጊዜ ከወሰደ, ገጹ ከረዥም መዘግየት ጋር ይታያል. ወይም፣ ፕሮጀክቱ ከሶስተኛ ወገን CDN ምንጭ የወረደ ቤተ-መጽሐፍትን ይጠቀማል እንበል። ይህ ሃብት በአንድ ሀገር ውስጥ ውድቀት እንደገጠመው ወይም እንደታገደ እናስብ። እንዲህ ያለው ሁኔታ የጣቢያው አመክንዮ ወደ መጣስ ይመራል.

አንዳንድ የውጭ አገልግሎት በማይገኝበት ጊዜ ጣቢያዎ እንዴት እንደሚሰራ ለማወቅ የSPOF ክፍልን መጠቀም ይችላሉ። webpagetest.org.

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው
የSPOF ክፍል በ webpagetest.org

▍በአሳሾች ውስጥ የቁሳቁስን መሸጎጥ ላይ ስላሉ ችግሮችስ? (ፍንጭ፡ ተረት ነው)

እነዚህ አገልግሎቶች ፍትሃዊ ጥራት ያላቸው አውታረ መረቦች ስላሏቸው እና በአለም ዙሪያ ስለሚሰራጩ የህዝብ ሲዲኤንን መጠቀም በራስ-ሰር ወደ ተሻለ የግብዓት አፈፃፀም ይመራል ብለው ያስቡ ይሆናል። ግን ሁሉም ነገር በእውነቱ ትንሽ የተወሳሰበ ነው።

የተለያዩ ድረ-ገጾች አሉን እንበል፡ ድህረ ገጽ1.com፣ website2.com፣ website3.com። እነዚህ ሁሉ ጣቢያዎች የ jQuery ላይብረሪ ይጠቀማሉ። ከነሱ ጋር እናገናኘዋለን CDN , ለምሳሌ - googleapis.com. አሳሹ አንዴ አውርዶ ቤተ-መጽሐፍቱን እንዲሸጎጥ እና ከዚያም በሶስቱም ድረ-ገጾች ላይ እንዲጠቀም መጠበቅ ትችላለህ። ይህ በኔትወርኩ ላይ ያለውን ጭነት ሊቀንስ ይችላል. ምናልባት ይህ የሆነ ቦታ ገንዘብ እንዲቆጥቡ እና የንብረት አፈጻጸምን ለማሻሻል እንዲረዳዎ ይፈቅድልዎታል. ከተግባራዊ እይታ, ሁሉም ነገር የተለየ ይመስላል. ለምሳሌ, Safari የሚባል ባህሪ አለው ብልህነት ክትትል / መከላከል: መሸጎጫው በሰነዱ ምንጭ እና በሶስተኛ ወገን ምንጭ ላይ በመመስረት ሁለት ቁልፎችን ይጠቀማል. እዚህ በዚህ ርዕስ ላይ ጥሩ ጽሑፍ.

የድሮ ጥናቶች ያሁ и Facebook, እንዲሁም በቅርብ ጊዜ ውስጥ ጥናት ፖል ካልቫኖ፣ ምንጮች የምንጠብቀው እስከሆነ ድረስ በአሳሽ መሸጎጫ ውስጥ እንደማይቀመጡ ያሳያሉ፡- “በአንድ ፕሮጀክት በራሱ እና በሶስተኛ ወገን ሀብቶች መሸጎጫ ጊዜ መካከል ትልቅ ክፍተት አለ። እየተነጋገርን ያለነው ስለ CSS እና የድር ቅርጸ-ቁምፊዎች ነው። ይኸውም፣ 95% የአገርኛ ቅርጸ-ቁምፊዎች የመሸጎጫ ጊዜ ከአንድ ሳምንት በላይ የሚፈጅ ሲሆን 50% የሶስተኛ ወገን ቅርጸ-ቁምፊዎች የመሸጎጫ ጊዜ ከሳምንት ያልበለጠ ጊዜ አላቸው! ይህ ለድር ገንቢዎች የቅርጸ-ቁምፊ ፋይሎችን ራሳቸው ለማስተናገድ አሳማኝ ምክንያት ይሰጣል!

በውጤቱም፣ የሌሎች ሰዎችን ይዘት የምታስተናግድ ከሆነ፣ በአሳሽ መሸጎጥ የተከሰተ የአፈጻጸም ችግርን አታስተውልም።

የሶስተኛ ወገን ራስን ማስተናገጃ ጥንካሬን ከሸፈንን፣ የዚህን አካሄድ ጥሩ አተገባበር ከመጥፎ እንዴት እንደምንለይ እንነጋገር።

መጥፎው: ዲያቢሎስ በዝርዝሮች ውስጥ ነው

የሶስተኛ ወገን ሃብቶችን ወደ ራስህ ጎራ ማዛወር እንደዚህ አይነት ሃብቶች በትክክል መሸጎጣቸውን ሳታረጋግጥ በራስ ሰር ሊከናወን አይችልም።

እዚህ ካሉት ዋነኛ ችግሮች አንዱ መሸጎጫ ጊዜ ነው። ለምሳሌ የስሪት መረጃ እንደዚህ ባሉ የሶስተኛ ወገን ስክሪፕት ስሞች ውስጥ ተካትቷል፡ jquery-3.4.1.js. እንዲህ ዓይነቱ ፋይል ለወደፊቱ አይለወጥም, በዚህም ምክንያት ይህ በመሸጎጫው ላይ ምንም ችግር አይፈጥርም.

ነገር ግን አንዳንድ የስሪት እቅድ ከፋይሎች ጋር ሲሰራ ጥቅም ላይ የማይውል ከሆነ፣ የተሸጎጡ ስክሪፕቶች፣ የፋይሉ ስም ሳይለወጥ በሚቆይበት ጊዜ ይዘቶቹ የሚቀየሩት ጊዜ ያለፈባቸው ሊሆኑ ይችላሉ። ይሄ ከባድ ችግር ሊሆን ይችላል፣ ምክንያቱም ለምሳሌ፣ ደንበኞቻቸው በተቻለ ፍጥነት መቀበል በሚያስፈልጋቸው ስክሪፕቶች ላይ አውቶማቲክ የደህንነት መጠገኛዎች እንዲታከሉ አይፈቅድም። ገንቢው በመሸጎጫው ውስጥ እንደዚህ ያሉ ስክሪፕቶችን ለማዘመን ጥረት ማድረግ ይኖርበታል። በተጨማሪም, ይህ በደንበኛው ላይ ጥቅም ላይ የዋለው ኮድ ከመሸጎጫው ላይ ጥቅም ላይ የዋለው የፕሮጄክቱ የአገልጋይ ክፍል ከተነደፈበት ኮድ የቅርብ ጊዜ ስሪት ስለሚለይ የመተግበሪያ ውድቀቶችን ሊያስከትል ይችላል.

እውነት ነው, በተደጋጋሚ ስለሚሻሻሉ ቁሳቁሶች ከተነጋገርን (መለያ አስተዳዳሪዎች, መፍትሄዎች ለ A / B ሙከራ), ከዚያም የሲዲኤን መሳሪያዎችን በመጠቀም መሸጎጥ ሊፈታ የሚችል ስራ ነው, ነገር ግን በጣም የተወሳሰበ ነው. እንደ አዛዥ ህግ ያሉ አገልግሎቶች፣ የመለያ አስተዳደር መፍትሄ፣ አዲስ ስሪቶችን ሲያትሙ የዌብ መንጠቆዎችን ይጠቀሙ። ይህ በሲዲኤን ላይ መሸጎጫ እንዲፈስ የማስገደድ ወይም በተሻለ ሁኔታ የሃሽ ወይም የዩአርኤል ዝመናን የማስገደድ ችሎታ ይሰጥዎታል።

▍የቁሳቁሶችን መላመድ ለደንበኞች

በተጨማሪም, ስለ መሸጎጫ ስንነጋገር, በሲዲኤን ላይ ጥቅም ላይ የዋሉ የመሸጎጫ ቅንጅቶች ለአንዳንድ የሶስተኛ ወገን ሀብቶች ተስማሚ ላይሆኑ እንደሚችሉ ግምት ውስጥ ማስገባት አለብን. ለምሳሌ፣ እንደነዚህ ያሉት ግብዓቶች የተጠቃሚ ወኪል ማሽተት (አስማሚ አገልግሎት) ቴክኖሎጂን በመጠቀም የተወሰኑ አሳሾችን ለእነዚያ አሳሾች በተመቻቹ የይዘት ስሪቶች ሊያገለግሉ ይችላሉ። እነዚህ ቴክኖሎጂዎች የአሳሽ ችሎታዎችን ለማወቅ በመደበኛ አገላለጾች ወይም በኤችቲቲፒ ራስጌ መረጃ ዳታቤዝ ላይ ይመረኮዛሉ። User-Agent. ከየትኛው አሳሽ ጋር እንደሚገናኙ ካወቁ በኋላ ለእሱ የተነደፉ ቁሳቁሶችን ይሰጡታል።

እዚህ ሁለት አገልግሎቶችን ማስታወስ ይችላሉ. የመጀመሪያው googlefonts.com ነው። ሁለተኛው polyfill.io ነው. የጉግል ፎንቶች አገልግሎት ለተወሰነ ምንጭ የተለያዩ የሲኤስኤስ ኮድ ይሰጣል ፣ እንደ አሳሹ አቅም (ወደ woff2 ሀብቶች አገናኞችን ይሰጣል) unicode-range).

ከተለያዩ አሳሾች የተሰሩ ሁለት የጎግል ፎንቶች መጠይቆች ውጤቶች እዚህ አሉ።

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው
የጉግል ፎንቶች መጠይቅ ከChrome

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው
የጉግል ፎንቶች መጠይቅ ውጤት ከIE10 ተፈፅሟል

Polyfill.io አሳሹን የሚፈልገውን ፖሊፋይ ብቻ ይሰጣል። ይህ የሚከናወነው በአፈፃፀም ምክንያቶች ነው።

ለምሳሌ፣ ከተለያዩ አሳሾች የሚከተለውን ጥያቄ ብታሄዱ ምን እንደሚፈጠር እንይ፡- https://polyfill.io/v3/polyfill.js?features=default

ከ IE10 ለተፈፀመው እንዲህ ላለው ጥያቄ ምላሽ 34 ኪባ ውሂብ ይቀበላል። እና ለእሱ መልሱ ከ Chrome የተተገበረው ባዶ ይሆናል።

የተናደደ፡ አንዳንድ የግላዊነት ጉዳዮች

ይህ ነጥብ በቅደም ተከተል የመጨረሻው ነው, ግን ቢያንስ አስፈላጊ አይደለም. ነጥቡ የሶስተኛ ወገን ሀብቶችን በራሱ በፕሮጀክቱ ዋና ጎራ ወይም በንኡስ ጎራ ላይ ማስተናገድ የተጠቃሚዎችን ግላዊነት አደጋ ላይ ሊጥል እና ዋናውን የድር ፕሮጀክት ላይ አሉታዊ ተጽዕኖ ሊያሳድር ይችላል.

የሲዲኤን ስርዓትዎ በትክክል ካልተዋቀረ የጎራዎን ኩኪዎች ለሶስተኛ ወገን አገልግሎት መላክ ይችላሉ። ትክክለኛው ማጣሪያ በሲዲኤን ደረጃ ካልተደራጀ፣ የእርስዎ ክፍለ ጊዜ ኩኪዎች፣ በተለምዶ በጃቫ ስክሪፕት (ከ httponly), ወደ ውጭ አገር አስተናጋጅ ሊላክ ይችላል.

ልክ እንደ Eulrian ወይም Criteo ባሉ መከታተያዎች ላይ ሊከሰት የሚችለው ይህ ነው። የሶስተኛ ወገን መከታተያዎች በኩኪው ውስጥ ልዩ መለያ አዘጋጅተው ሊሆን ይችላል። የጣቢያው ቁሳቁስ አካል ከሆኑ፣ ተጠቃሚው ከተለያዩ የድረ-ገጽ ምንጮች ጋር በሚሰራበት ጊዜ በፍላጎታቸው መለያውን ማንበብ ይችላሉ።

በአሁኑ ጊዜ፣ አብዛኛዎቹ አሳሾች ከእንደዚህ አይነት የመከታተያ ባህሪ ጥበቃን ያካትታሉ። በውጤቱም, ዱካዎች አሁን ቴክኖሎጂን ይጠቀማሉ CNAME መዝጋትለተለያዩ ፕሮጀክቶች የራሳቸው ስክሪፕት አድርገው በመምሰል። ይኸውም፣ ትራከሮች ለተወሰነ ጎራ CNAMEን ወደ ቅንብሮቻቸው እንዲያክሉ የጣቢያ ባለቤቶችን ይሰጣሉ፣ አድራሻቸው ብዙውን ጊዜ የዘፈቀደ የቁምፊዎች ስብስብ ይመስላል።

ምንም እንኳን የድር ጣቢያ ኩኪዎችን ለሁሉም ንዑስ ጎራዎች (ለምሳሌ - *.website.com) እንዲገኝ ማድረግ ባይመከርም ብዙ ጣቢያዎች ይህን ያደርጋሉ። በዚህ አጋጣሚ እንደዚህ ያሉ ኩኪዎች በራስ-ሰር ወደተደበቀ የሶስተኛ ወገን መከታተያ ይላካሉ። በዚህ ምክንያት፣ ስለማንኛውም ግላዊነት ማውራት አንችልም።

እንዲሁም፣ በ HTTP ራስጌዎች ተመሳሳይ ነገር ይከሰታል ደንበኛ-ፍንጭለመፍጠር ጥቅም ላይ ሊውሉ ስለሚችሉ ወደ ዋናው ጎራ ብቻ የሚላኩ ዲጂታል አሻራ ተጠቃሚ። የሚጠቀሙት የሲዲኤን አገልግሎት እነዚህን ራስጌዎች በትክክል እንደሚያጣራ እርግጠኛ ይሁኑ።

ውጤቶች

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ በቅርቡ ተግባራዊ ለማድረግ ካሰቡ አንዳንድ ጠቃሚ ምክሮችን ልስጥዎት፡-

  • የእርስዎን በጣም አስፈላጊ የJS ቤተ-ፍርግሞችን፣ ቅርጸ-ቁምፊዎችን እና የሲኤስኤስ ፋይሎችን ያስተናግዱ። ይህ በሶስተኛ ወገን አገልግሎት ስህተት ምክንያት ለጣቢያው አስፈላጊ የሆነ ግብአት ስለማይገኝ የጣቢያው ብልሽት ወይም የአፈፃፀም መጥፋት አደጋን ይቀንሳል።
  • በሲዲኤን ላይ የሶስተኛ ወገን ሃብቶችን ከመሸጎጥዎ በፊት ፋይሎቻቸውን በሚሰይሙበት ጊዜ አንዳንድ አይነት የስርዓተ ክወናዎች ጥቅም ላይ መዋላቸውን ወይም የነዚህን ሀብቶች የህይወት ዑደት ማስተዳደር የሚችሉት በእጅ ወይም አዲስ ስሪት በሚታተምበት ጊዜ የCDN መሸጎጫውን በራስ-ሰር እንደገና በማስጀመር መሆኑን ያረጋግጡ። ጽሁፉ.
  • ሾለ ሲዲኤን፣ ተኪ አገልጋይ እና መሸጎጫ ቅንጅቶች በጣም ይጠንቀቁ። ይህ የእርስዎ ፕሮጀክት ወይም ራስጌዎች ኩኪዎች እንዳይላኩ ለመከላከል ያስችልዎታል Client-Hints የሶስተኛ ወገን አገልግሎቶች.

ውድ አንባቢዎች! ለፕሮጀክቶችዎ አሠራር እጅግ በጣም አስፈላጊ የሆኑ የሌሎች ሰዎችን ቁሳቁሶች በአገልጋዮችዎ ላይ ያስተናግዳሉ?

የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው
የሶስተኛ ወገን ሀብቶችን እራስን ማስተናገድ: ጥሩው, መጥፎው, አስቀያሚው

ምንጭ: hab.com

አስተያየት ያክሉ