Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju

Ni awọn ọdun aipẹ, awọn iru ẹrọ diẹ sii ati siwaju sii fun iṣapeye awọn iṣẹ akanṣe iwaju-ipari nfunni awọn aye fun gbigbalejo ara ẹni tabi aṣoju awọn orisun ẹni-kẹta. Akamai faye gba o lati ṣeto pato sile fun ara-ti ipilẹṣẹ URL. Cloudflare ni imọ-ẹrọ Edge Workers. Fasterzine le tun kọ Awọn URL lori awọn oju-iwe ki wọn tọka si awọn orisun ẹnikẹta ti o wa lori aaye akọkọ ti aaye naa.

Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju

Ti o ba mọ pe awọn iṣẹ ẹnikẹta ti a lo ninu iṣẹ akanṣe rẹ ko yipada nigbagbogbo, ati pe ilana ti jiṣẹ wọn si awọn alabara le ni ilọsiwaju, lẹhinna o ṣee ṣe ki o ronu nipa aṣoju iru awọn iṣẹ bẹẹ. Pẹlu ọna yii, o le mu awọn orisun wọnyi dara si awọn olumulo rẹ ki o gba iṣakoso pipe diẹ sii lori caching wọn ni ẹgbẹ alabara. Eyi, ni afikun, ngbanilaaye lati daabobo awọn olumulo lati awọn wahala ti o ṣẹlẹ nipasẹ “jamba” ti iṣẹ ẹnikẹta tabi ibajẹ ti iṣẹ rẹ.

O dara: Iṣe ilọsiwaju

Gbigbalejo ara ẹni awọn orisun elomiran ṣe ilọsiwaju iṣẹ ni ọna ti o han gbangba. Aṣàwákiri naa ko nilo lati wọle si DNS lẹẹkansi, ko nilo lati fi idi asopọ TCP kan mulẹ ati ṣe imuwowo TLS kan lori agbegbe ẹni-kẹta. O le wo bii gbigbalejo ara ẹni awọn orisun elomiran ṣe ni ipa lori iṣẹ ṣiṣe nipa ifiwera awọn isiro meji wọnyi.

Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju
Awọn orisun ẹnikẹta jẹ igbasilẹ lati awọn orisun ita (ti o gba lati lati ibi)

Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju
Awọn orisun ẹni-kẹta ti wa ni ipamọ ni aaye kanna bi iyoku awọn ohun elo aaye (ya lati lati ibi)

Ipo naa tun ni ilọsiwaju nipasẹ otitọ pe ẹrọ aṣawakiri yoo lo agbara lati ṣe pupọ ati ki o ṣe pataki data lati asopọ HTTP / 2 ti a ti fi idi mulẹ pẹlu agbegbe akọkọ.

Ti o ko ba gbalejo awọn orisun ẹnikẹta, lẹhinna niwọn igba ti wọn yoo kojọpọ lati agbegbe ti o yatọ si akọkọ, wọn ko le ṣe pataki. Eyi yoo jẹ ki wọn dije pẹlu ara wọn fun bandiwidi onibara. Eyi le ja si ni awọn akoko ikojọpọ fun akoonu pataki si kikọ oju-iwe kan ti o gun ju ohun ti yoo ṣee ṣe labẹ awọn ipo pipe. Nibi sọrọ lori HTTP / 2 ayo ti o salaye gbogbo eyi daradara.

O le ṣe akiyesi pe lilo awọn abuda ni awọn ọna asopọ si awọn orisun ita preconnect yoo ṣe iranlọwọ lati yanju iṣoro naa. Bibẹẹkọ, ti ọpọlọpọ awọn ọna asopọ wọnyi ba wa si awọn agbegbe oriṣiriṣi, o le ṣe apọju laini ibaraẹnisọrọ ni akoko pataki julọ.

Ti o ba gbalejo awọn orisun ẹni-kẹta funrararẹ, o le ṣakoso bii gangan awọn orisun wọnyi ṣe fun alabara. Ni eyun, a n sọrọ nipa awọn atẹle:

  • O le rii daju pe algorithm funmorawon data ti o baamu ẹrọ aṣawakiri kọọkan dara julọ ti lo (Brotli/gzip).
  • O le mu akoko caching pọ si fun awọn orisun ti kii ṣe igba pipẹ paapaa, paapaa pẹlu awọn olupese ti o mọ julọ (fun apẹẹrẹ, iye ti o baamu fun tag GA ti ṣeto si awọn iṣẹju 30).

O le paapaa faagun TTL fun orisun kan si, sọ, ọdun kan nipa iṣakojọpọ akoonu ti o yẹ sinu ilana iṣakoso caching rẹ (awọn hashes URL, ikede, ati bẹbẹ lọ). A yoo sọrọ nipa eyi ni isalẹ.

▍ Aabo lodi si awọn idilọwọ ni iṣẹ ti awọn iṣẹ ẹnikẹta tabi tiipa wọn

Apakan igbadun miiran ti gbigbalejo ara ẹni awọn orisun ẹnikẹta ni pe o gba ọ laaye lati dinku awọn eewu ti o nii ṣe pẹlu awọn ijade ti awọn iṣẹ ẹnikẹta. Jẹ ki a ro pe ojutu idanwo A/B ẹni-kẹta ti o nlo ni imuse bi iwe afọwọkọ ìdènà ti o ṣaja ni apakan ori ti oju-iwe naa. Yi akosile èyà laiyara. Ti iwe afọwọkọ ti o baamu ba kuna lati fifuye, oju-iwe naa yoo jẹ ofo. Ti o ba gba akoko pipẹ pupọ lati fifuye, oju-iwe naa yoo han pẹlu idaduro gigun. Tabi, ṣebi iṣẹ akanṣe naa nlo ile-ikawe ti a ṣe igbasilẹ lati orisun CDN ẹni-kẹta. Jẹ ki a fojuinu pe orisun yii ni iriri ikuna tabi ti dina ni orilẹ-ede kan. Iru ipo bẹẹ yoo ja si ilodi si ọgbọn ti aaye naa.

Lati wa bi aaye rẹ ṣe n ṣiṣẹ nigbati diẹ ninu awọn iṣẹ ita ko si, o le lo apakan SPOF lori webpagetest.org.

Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju
SPOF apakan lori webpagetest.org

Kini nipa awọn iṣoro pẹlu caching ti awọn ohun elo ni awọn aṣawakiri? (itọkasi: arosọ ni)

O le ro pe lilo CDN ti gbogbo eniyan yoo yorisi iṣẹ ṣiṣe awọn orisun to dara julọ, niwọn igba ti awọn iṣẹ wọnyi ni awọn nẹtiwọọki ti o ni agbara to gaju ati pe wọn pin kaakiri agbaye. Ṣugbọn ohun gbogbo ni kosi kekere kan diẹ idiju.

Jẹ ki a sọ pe a ni ọpọlọpọ awọn aaye oriṣiriṣi: website1.com, website2.com, website3.com. Gbogbo awọn aaye wọnyi lo ile-ikawe jQuery. A so pọ mọ wọn nipa lilo CDN, fun apẹẹrẹ - googleapis.com. O le nireti aṣawakiri lati ṣe igbasilẹ ati kaṣe ile-ikawe lẹẹkan, ati lẹhinna lo kọja gbogbo awọn aaye mẹta. Eyi le dinku fifuye lori nẹtiwọọki naa. Boya eyi yoo gba ọ laaye lati ṣafipamọ owo ni ibikan ati ṣe iranlọwọ lati mu ilọsiwaju awọn orisun ṣiṣẹ. Lati oju-ọna ti o wulo, ohun gbogbo dabi iyatọ. Fun apẹẹrẹ, Safari ni ẹya ti a pe Idena Titele Ọlọgbọn: Kaṣe naa nlo awọn bọtini meji ti o da lori orisun ti iwe-ipamọ ati orisun orisun ti ẹnikẹta. Nibi ti o dara article lori koko yi.

atijọ-ẹrọ Yahoo и Facebook, bi daradara bi diẹ to šẹšẹ iwadi Paul Calvano, fihan pe awọn orisun ko ni ipamọ sinu awọn caches aṣawakiri fun igba ti a le nireti: “Aafo pataki kan wa laarin akoko caching ti iṣẹ akanṣe tirẹ ati awọn orisun ẹni-kẹta. A n sọrọ nipa CSS ati awọn nkọwe wẹẹbu. Eyun, 95% ti awọn nkọwe abinibi ni igbesi aye kaṣe ti o ju ọsẹ kan lọ, lakoko ti 50% ti awọn nkọwe ẹni-kẹta ni igbesi aye kaṣe ti o kere ju ọsẹ kan! Eyi n fun awọn olupilẹṣẹ wẹẹbu ni idi pataki lati gbalejo awọn faili font funrararẹ!”

Bi abajade, ti o ba gbalejo akoonu awọn eniyan miiran, iwọ kii yoo ṣe akiyesi eyikeyi awọn ọran iṣẹ ṣiṣe nipasẹ caching aṣawakiri.

Ni bayi ti a ti bo awọn agbara ti alejo gbigba ẹni-kẹta, jẹ ki a sọrọ nipa bii a ṣe le sọ imuse to dara ti ọna yii lati ọkan buburu.

Buburu: Bìlísì wa ninu awọn alaye

Gbigbe awọn orisun ẹnikẹta si agbegbe tirẹ ko le ṣee ṣe laifọwọyi laisi idaniloju pe iru awọn orisun ti wa ni ipamọ daradara.

Ọkan ninu awọn iṣoro akọkọ nibi ni akoko caching. Fun apẹẹrẹ, alaye ẹya wa ninu awọn orukọ iwe afọwọkọ ẹni-kẹta bi eleyi: jquery-3.4.1.js. Iru faili bẹẹ kii yoo yipada ni ọjọ iwaju, ati bi abajade eyi kii yoo fa awọn iṣoro eyikeyi pẹlu caching rẹ.

Ṣugbọn ti a ko ba lo ero ẹya kan nigbati o n ṣiṣẹ pẹlu awọn faili, awọn iwe afọwọkọ ti a fipamọ, awọn akoonu inu eyiti o yipada lakoko ti orukọ faili ko yipada, le di igba atijọ. Eyi le jẹ iṣoro pataki, nitori o, fun apẹẹrẹ, ko gba laaye awọn abulẹ aabo adaṣe lati ṣafikun si awọn iwe afọwọkọ ti awọn alabara nilo lati gba ni yarayara bi o ti ṣee. Olùgbéejáde yoo ni lati ṣe igbiyanju lati ṣe imudojuiwọn iru awọn iwe afọwọkọ ni kaṣe. Ni afikun, eyi le fa awọn ikuna ohun elo nitori otitọ pe koodu ti a lo lori alabara lati kaṣe yatọ si ẹya tuntun ti koodu fun eyiti apakan olupin ti iṣẹ akanṣe ti ṣe apẹrẹ.

Otitọ, ti a ba sọrọ nipa awọn ohun elo ti a ṣe imudojuiwọn nigbagbogbo (awọn alakoso tag, awọn iṣeduro fun idanwo A / B), lẹhinna caching wọn nipa lilo awọn irinṣẹ CDN jẹ iṣẹ-ṣiṣe ti o le ṣe atunṣe, ṣugbọn o jẹ diẹ sii idiju. Awọn iṣẹ bii Ofin Awọn Alakoso, ojutu iṣakoso tag, lo awọn oju opo wẹẹbu nigba titẹjade awọn ẹya tuntun. Eyi fun ọ ni agbara lati fi ipa mu kaṣe kan sori CDN, tabi, dara julọ sibẹsibẹ, agbara lati fi ipa mu hash tabi imudojuiwọn URL kan.

▍ Ifijiṣẹ adaṣe ti awọn ohun elo si awọn alabara

Ni afikun, nigba ti a ba sọrọ nipa caching, a nilo lati ṣe akiyesi otitọ pe awọn eto caching ti a lo lori CDN le ma dara fun diẹ ninu awọn orisun ẹni-kẹta. Fún àpẹrẹ, irú àwọn ohun àmúṣọrọ̀ bẹ le lo ìmọ̀ ẹ̀rọ aṣàmúlò aṣojú onífẹ̀ẹ́ (iṣẹ́ ìṣàfilọ́wọ́gbà) láti sin àwọn aṣàwákiri kan pàtó pẹ̀lú àwọn ẹ̀yà àkóónú tí a ṣàpeye ní pàtàkì fún àwọn aṣàwákiri wọ̀nyẹn. Awọn imọ-ẹrọ wọnyi gbarale awọn ikosile deede, tabi data data ti alaye akọsori HTTP, lati ṣawari awọn agbara aṣawakiri. User-Agent. Ni kete ti wọn mọ iru ẹrọ aṣawakiri ti wọn nṣe, wọn fun ni awọn ohun elo ti a ṣe apẹrẹ fun rẹ.

Nibi o le ranti awọn iṣẹ meji. Eyi akọkọ jẹ googlefonts.com. Ekeji jẹ polyfill.io. Iṣẹ Awọn Fonts Google n pese, fun orisun kan, ọpọlọpọ koodu CSS, da lori awọn agbara ẹrọ aṣawakiri (fifun awọn ọna asopọ si awọn orisun woff2 nipa lilo unicode-range).

Eyi ni awọn abajade ti tọkọtaya kan ti awọn ibeere Google Fonts ti a ṣe lati awọn aṣawakiri oriṣiriṣi.

Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju
Abajade ibeere Google Fonts lati Chrome

Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju
Abajade ibeere Google Fonts ti o ṣiṣẹ lati IE10

Polyfill.io fun ẹrọ aṣawakiri nikan ni awọn kikun polyfill ti o nilo. Eyi ni a ṣe fun awọn idi iṣẹ ṣiṣe.

Fun apẹẹrẹ, jẹ ki a wo ohun ti o ṣẹlẹ ti o ba ṣiṣẹ ibeere atẹle lati awọn aṣawakiri oriṣiriṣi: https://polyfill.io/v3/polyfill.js?features=default

Ni idahun si iru ibeere ti a ṣe lati IE10, 34 KB ti data yoo gba. Ati idahun si rẹ, ti a ṣe lati Chrome, yoo jẹ ofo.

Binu: Diẹ ninu awọn ero ikọkọ

Aaye yi ni kẹhin ni ibere, sugbon ko kere pataki. Oro naa ni pe gbigbalejo ti ara ẹni ti awọn orisun ẹnikẹta lori aaye akọkọ ti iṣẹ akanṣe tabi lori subdomain rẹ le ṣe iparun aṣiri awọn olumulo ati ni odi ni ipa lori iṣẹ akanṣe wẹẹbu akọkọ.

Ti eto CDN rẹ ko ba tunto ni deede, o le pari fifi awọn kuki agbegbe rẹ ranṣẹ si iṣẹ ẹnikẹta kan. Ti a ko ba ṣeto sisẹ to dara ni ipele CDN, lẹhinna awọn kuki igba rẹ, eyiti ko ṣe deede lo ni JavaScript (pẹlu awọn httponly), le jẹ firanṣẹ si alejo gbigba ajeji kan.

Eyi ni pato ohun ti o le ṣẹlẹ pẹlu awọn olutọpa bi Eulerian tabi Criteo. Awọn olutọpa ẹni-kẹta le ti ṣeto idanimọ alailẹgbẹ kan ninu kuki naa. Ti wọn ba jẹ apakan ti awọn ohun elo aaye, wọn le ka idanimọ ni lakaye wọn lakoko ti olumulo n ṣiṣẹ pẹlu awọn orisun wẹẹbu oriṣiriṣi.

Awọn ọjọ wọnyi, ọpọlọpọ awọn aṣawakiri pẹlu aabo lodi si iru ihuwasi olutọpa yii. Bi abajade, awọn olutọpa bayi lo imọ-ẹrọ CNAME ibora, masquerading bi ara wọn iwe afọwọkọ fun orisirisi ise agbese. Eyun, awọn olutọpa nfunni ni awọn oniwun aaye lati ṣafikun CNAME si awọn eto wọn fun agbegbe kan, adiresi eyiti eyiti o dabi ipilẹ awọn ohun kikọ laileto.

Botilẹjẹpe ko ṣe iṣeduro lati jẹ ki awọn kuki oju opo wẹẹbu wa si gbogbo awọn subdomains (fun apẹẹrẹ - *.website.com), ọpọlọpọ awọn aaye ṣe eyi. Ni ọran yii, iru awọn kuki bẹẹ ni a fi ranṣẹ laifọwọyi si olutọpa ẹni-kẹta ti o para. Bi abajade, a ko le sọrọ nipa eyikeyi ikọkọ mọ.

Paapaa, ohun kanna ṣẹlẹ pẹlu awọn akọle HTTP Onibara-Awọn imọran, eyiti a firanṣẹ nikan si agbegbe akọkọ, nitori wọn le ṣee lo lati ṣẹda oni itẹka olumulo. Rii daju pe iṣẹ CDN ti o lo ṣe asẹ awọn akọle wọnyi ni deede.

Awọn esi

Ti o ba n gbero lati ṣe imuse gbigbalejo ara ẹni ti awọn orisun ẹnikẹta laipẹ, jẹ ki n fun ọ ni imọran diẹ:

  • Gbalejo awọn ile-ikawe JS pataki julọ rẹ, awọn nkọwe ati awọn faili CSS. Eyi yoo dinku eewu ikuna aaye tabi ibajẹ iṣẹ nitori orisun pataki si aaye naa ko si nitori asise ti iṣẹ ẹnikẹta.
  • Ṣaaju ki o to kaṣe awọn orisun ẹni-kẹta lori CDN kan, rii daju pe diẹ ninu iru eto ikede ni a lo nigbati o ba n sọ awọn faili wọn, tabi pe o le ṣakoso awọn igbesi aye ti awọn orisun wọnyi nipasẹ ọwọ tabi tunto kaṣe CDN laifọwọyi nigba titẹjade ẹya tuntun ti akosile.
  • Ṣọra gidigidi nipa CDN rẹ, olupin aṣoju, ati awọn eto kaṣe. Eyi yoo gba ọ laaye lati ṣe idiwọ iṣẹ akanṣe rẹ tabi awọn akọle lati firanṣẹ awọn kuki Client-Hints kẹta awọn iṣẹ.

Eyin onkawe! Ṣe o gbalejo awọn ohun elo eniyan miiran lori awọn olupin rẹ ti o ṣe pataki pupọ fun ṣiṣe awọn iṣẹ akanṣe rẹ?

Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju
Gbigbalejo ara ẹni awọn orisun ẹni-kẹta: ti o dara, buburu, ilosiwaju

orisun: www.habr.com

Fi ọrọìwòye kun