Сарчашмаҳои шахсии сеюм: хуб, бад, зишт

Дар солҳои охир, бештар ва бештар платформаҳо барои оптимизатсияи лоиҳаҳои пештара имкониятҳоро барои худидоракунии худ ё прокси захираҳои сеюм пешниҳод мекунанд. Akamai ба шумо имкон медиҳад, ки танзим кунед параметрҳои мушаххас барои URL-ҳои худ тавлидшуда. Cloudflare дорои технологияи Edge Workers мебошад. Fasterzine метавонад аз нав навиштан URL-ҳо дар саҳифаҳо, то онҳо ба захираҳои тарафи сеюм, ки дар домени асосии сайт ҷойгиранд, ишора кунанд.

Сарчашмаҳои шахсии сеюм: хуб, бад, зишт

Агар шумо медонед, ки хидматҳои тарафи сеюм, ки дар лоиҳаи шумо истифода мешаванд, зуд-зуд тағир намеёбанд ва раванди расонидани онҳоро ба мизоҷон беҳтар кардан мумкин аст, пас шумо эҳтимол дар бораи прокси ин гуна хидматҳо фикр мекунед. Бо ин равиш, шумо метавонед хеле хуб ин захираҳоро ба корбарони худ наздиктар кунед ва назорати пурраи кэшкунии онҳоро дар тарафи муштарӣ ба даст оред. Ин, илова бар ин, ба шумо имкон медиҳад, ки корбаронро аз мушкилоте, ки дар натиҷаи "суқути" хидмати тарафи сеюм ё таназзули кори он ба вуҷуд омадаанд, муҳофизат кунед.

Хуб: иҷрои беҳтар

Ҷойгиркунии худидоракунии захираҳои ягон каси дигар корҳоро ба таври хеле возеҳ беҳтар мекунад. Ба браузер лозим нест, ки дубора ба DNS дастрасӣ пайдо кунад, ба он лозим нест, ки пайвасти TCP барқарор кунад ва дастфишори TLS дар домени тарафи сеюм анҷом диҳад. Шумо метавонед бо муқоисаи ду рақами зерин бинед, ки чӣ тавр худидоракунии захираҳои ягон каси дигар ба кор таъсир мерасонад.

Сарчашмаҳои шахсии сеюм: хуб, бад, зишт
Захираҳои тарафи сеюм аз манбаъҳои беруна зеркашӣ карда мешаванд (аз аз ин ҷо)

Сарчашмаҳои шахсии сеюм: хуб, бад, зишт
Захираҳои тарафи сеюм дар ҳамон ҷое нигоҳ дошта мешаванд, ки боқимондаи маводҳои сайт (аз аз ин ҷо)

Вазъият инчунин бо он беҳтар шудааст, ки браузер қобилияти мултиплекс ва афзалият додани маълумотро аз пайвасти HTTP/2, ки аллакай бо домени асосӣ муқаррар шудааст, истифода мебарад.

Агар шумо захираҳои тарафи сеюмро ҷойгир накунед, азбаски онҳо аз домени аз домени асосӣ фарқкунанда бор карда мешаванд, ба онҳо афзалият дода намешавад. Ин боиси он мегардад, ки онҳо барои фарохмаҷрои муштарӣ бо ҳамдигар рақобат кунанд. Ин метавонад ба вақти боркунии мундариҷа барои сохтани саҳифае оварда расонад, ки нисбат ба он чизе, ки дар шароити беҳтарин имконпазир аст, хеле дарозтар аст. дар ин ҷо дар бораи афзалиятҳои HTTP/2 сӯҳбат кунед, ки ҳамаи инро хеле хуб мефаҳмонад.

Фарз кардан мумкин аст, ки истифодаи атрибутҳо дар истинод ба захираҳои беруна preconnect ба халли масъала ёрй мерасонад. Аммо, агар аз ҳад зиёди ин истинодҳо ба доменҳои гуногун вуҷуд дошта бошанд, он воқеан метавонад хати иртиботро дар лаҳзаи муҳимтарин бор кунад.

Агар шумо захираҳои тарафи сеюмро худатон ҷойгир кунед, шумо метавонед назорат кунед, ки чӣ гуна ин захираҳо ба муштарӣ дода мешаванд. Махсусан, мо дар бораи чизҳои зерин сухан меронем:

  • Шумо метавонед боварӣ ҳосил кунед, ки алгоритми фишурдани маълумот, ки ба ҳар як браузер мувофиқ аст (Brotli/gzip) истифода мешавад.
  • Шумо метавонед вақти кэшро барои захираҳое, ки одатан чандон дароз нестанд, ҳатто бо провайдерҳои маъруфтарин зиёд кунед (масалан, арзиши мувофиқ барои теги GA ба 30 дақиқа муқаррар карда шудааст).

Шумо ҳатто метавонед TTL-ро барои як манба, масалан, як сол бо ворид кардани мундариҷаи мувофиқ ба стратегияи идоракунии кэши худ (хэшҳои URL, нусхабардорӣ ва ғайра) тамдид кунед. Мо дар ин бора дар поён гап мезанем.

▍Ҳимоя аз халалдоршавӣ дар кори хидматҳои шахсони сеюм ё қатъи онҳо

Ҷанбаи дигари ҷолиби худидоракунии захираҳои сеюм дар он аст, ки он ба шумо имкон медиҳад, ки хатарҳои марбут ба қатъ шудани хидматҳои тарафи сеюмро коҳиш диҳед. Фарз мекунем, ки ҳалли санҷиши A/B-и тарафи сеюм, ки шумо истифода мебаред, ҳамчун скрипти блоккунӣ, ки дар қисмати сари саҳифа бор мекунад, амалӣ карда мешавад. Ин скрипт оҳиста бор карда мешавад. Агар скрипти мувофиқ бор карда нашавад, саҳифа холӣ хоҳад буд. Агар барои боркунӣ вақти хеле тӯлонӣ лозим бошад, саҳифа бо таъхири тӯлонӣ пайдо мешавад. Ё фарз мекунем, ки лоиҳа китобхонаеро истифода мебарад, ки аз манбаи CDN-и тарафи сеюм бор карда шудааст. Тасаввур кунем, ки ин манбаъ ноком шуд ё дар як кишвари муайян баста шудааст. Чунин ҳолат боиси вайрон шудани мантиқи сайт мегардад.

Барои фаҳмидани он, ки сайти шумо чӣ гуна кор мекунад, вақте ки ягон хидмати беруна дастрас нест, шумо метавонед бахши SPOF -ро истифода баред webpagetest.org.

Сарчашмаҳои шахсии сеюм: хуб, бад, зишт
Бахши SPOF дар webpagetest.org

▍Дар бораи мушкилоти кэшкунии мавод дар браузерҳо чӣ гуфтан мумкин аст? (маслиҳат: ин афсона аст)

Шумо шояд фикр кунед, ки истифодаи CDN-ҳои ҷамъиятӣ ба таври худкор ба беҳтар шудани самаранокии захираҳо оварда мерасонад, зеро ин хидматҳо шабакаҳои хеле баландсифат доранд ва дар саросари ҷаҳон паҳн мешаванд. Аммо дар асл ҳама чиз каме мураккабтар аст.

Фарз мекунем, ки мо якчанд сайтҳои гуногун дорем: website1.com, website2.com, website3.com. Ҳамаи ин сайтҳо китобхонаи jQuery-ро истифода мебаранд. Мо онро ба онҳо бо истифода аз CDN пайваст мекунем, масалан - googleapis.com. Шумо метавонед интизор шавед, ки браузер як бор китобхонаро зеркашӣ ва кэш мекунад ва сипас онро дар ҳар се сайт истифода мебарад. Ин метавонад сарбории шабакаро кам кунад. Эҳтимол, ин ба шумо имкон медиҳад, ки пулро дар ҷое сарфа кунед ва ба беҳтар шудани кори захираҳо мусоидат кунед. Аз нуктаи назари амалй хама чиз дигар хел менамояд. Масалан, Safari дорои хусусиятест бо номи Пешгирии интеллектуалӣ: Кэш калидҳои дугонаро дар асоси манбаи ҳуҷҷат ва манбаи манбаи тарафи сеюм истифода мебарад. дар ин ҷо мақолаи хуб дар ин мавзӯъ.

омӯзиши кӯҳна Yahoo и Facebook, инчунин навтарин омӯзиш Пол Калвано, нишон медиҳад, ки захираҳо дар кэшҳои браузер то он даме, ки мо интизор будем, нигоҳ дошта намешаванд: “Дар байни вақти кэшкунии захираҳои худи лоиҳа ва шахсони сеюм фосилаи ҷиддӣ вуҷуд дорад. Мо дар бораи CSS ва шрифтҳои веб гап мезанем. Махз, 95% шрифтҳои ватанӣ мӯҳлати кэшро зиёда аз як ҳафта доранд, дар ҳоле ки 50% шрифтҳои тарафи сеюм мӯҳлати кэш камтар аз як ҳафта доранд! Ин ба таҳиягарони веб сабаби асоснок медиҳад, ки файлҳои шрифтро худашон ҷойгир кунанд!

Дар натиҷа, агар шумо мундариҷаи одамони дигарро ҷойгир кунед, шумо ягон мушкилоти иҷроишро, ки аз кэшкунии браузер ба вуҷуд омадааст, пай намебаред.

Акнун, ки мо ҷиҳатҳои пурқуввати худидоракунии тарафи сеюмро фаро гирифтем, биёед дар бораи он сӯҳбат кунем, ки чӣ гуна татбиқи хуби ин равишро аз усули бад фарқ кардан мумкин аст.

Бад: Шайтон дар тафсилот аст

Интиқоли захираҳои тарафи сеюм ба домени шахсии шумо наметавонад ба таври худкор бидуни кафолат додани кэшҳои дурусти ин захираҳо анҷом дода шавад.

Яке аз мушкилоти асосӣ дар ин ҷо вақти кэш аст. Масалан, маълумоти версия ба номҳои скрипти тарафи сеюм дохил карда мешавад, ба монанди: jquery-3.4.1.js. Чунин файл дар оянда таѓйир намеёбад ва дар натиља ин бо кэшкунии он ягон мушкилие ба миён намеорад.

Аммо агар ҳангоми кор бо файлҳо ягон схемаи версияи версия истифода нашавад, скриптҳои кэшшуда, ки мундариҷаи онҳо ҳангоми бетағйир мондани номи файл тағйир меёбад, метавонад кӯҳна шавад. Ин метавонад як мушкилоти ҷиддӣ бошад, зеро он, масалан, имкон намедиҳад, ки часпҳои амниятии автоматӣ ба скриптҳо илова карда шаванд, ки муштариён бояд ҳарчи зудтар қабул кунанд. Таҳиягар бояд кӯшиш кунад, ки чунин скриптҳоро дар кэш навсозӣ кунад. Илова бар ин, ин метавонад боиси нокомии барномаҳо гардад, зеро рамзи дар муштарӣ аз кэш истифодашаванда аз версияи охирини код, ки барои он қисми сервери лоиҳа тарҳрезӣ шудааст, фарқ мекунад.

Дуруст, агар мо дар бораи маводҳое, ки зуд-зуд нав карда мешаванд, сухан ронем (менеҷерҳои барчаспҳо, ҳалли санҷиши A/B), пас кэшкунии онҳо бо истифода аз абзорҳои CDN як вазифаест, ки ҳал кардан мумкин аст, аммо хеле мураккабтар аст. Хидматҳо ба монанди Commanders Act, як ҳалли идоракунии тегҳо ҳангоми нашри версияҳои нав вебхукҳоро истифода мебаранд. Ин ба шумо имкон медиҳад, ки тозакунии кэшро дар CDN маҷбур кунед, ё беҳтараш, қобилияти маҷбур кардани навсозии хэш ё URL-ро медиҳад.

▍Мутобиқсозии интиқоли мавод ба мизоҷон

Илова бар ин, вақте ки мо дар бораи кэш гап мезанем, мо бояд ба назар гирем, ки танзимоти кэш, ки дар CDN истифода мешаванд, барои баъзе захираҳои тарафи сеюм мувофиқ нестанд. Масалан, чунин захираҳо метавонанд технологияи агенти корбарро бӯй кардан (хизматрасонии мутобиқшавӣ) -ро барои хидмат ба браузерҳои мушаххас бо версияҳои мундариҷаи махсус барои ин браузерҳо оптимизатсияшуда истифода баранд. Ин технологияҳо ба ифодаҳои муқаррарӣ ё базаи маълумоти сарлавҳаи HTTP барои муайян кардани қобилиятҳои браузер такя мекунанд. User-Agent. Вақте ки онҳо медонанд, ки бо кадом браузер сарукор доранд, ба он маводҳое медиҳанд, ки барои он тарҳрезӣ шудаанд.

Дар ин ҷо шумо метавонед ду хидматро дар хотир доред. Якум googlefonts.com аст. Дуюм polyfill.io аст. Хидмати Google Fonts барои як манбаи муайян, вобаста ба имкониятҳои браузер, рамзи гуногуни CSS-ро таъмин мекунад (пайвандҳо ба захираҳои woff2 бо истифода аз unicode-range).

Инҳоянд натиҷаҳои якчанд дархостҳои Google Fonts аз браузерҳои гуногун.

Сарчашмаҳои шахсии сеюм: хуб, бад, зишт
Натиҷаи дархости Google Fonts аз Chrome

Сарчашмаҳои шахсии сеюм: хуб, бад, зишт
Натиҷаи дархости Google Fonts аз IE10 иҷро шудааст

Polyfill.io ба браузер танҳо полифилҳои лозимиро медиҳад. Ин бо сабабҳои иҷро анҷом дода мешавад.

Масалан, биёед бубинем, ки агар шумо дархости зеринро аз браузерҳои гуногун иҷро кунед, чӣ мешавад: https://polyfill.io/v3/polyfill.js?features=default

Дар посух ба чунин дархосте, ки аз IE10 иҷро шудааст, 34 КБ маълумот гирифта мешавад. Ва ҷавоб ба он, ки аз Chrome иҷро шудааст, холӣ хоҳад буд.

хашмгин: Баъзе мулоҳизаҳои дахолатнопазирӣ

Ин нукта дар навбати охир аст, аммо муҳим нест. Гап дар он аст, ки худидоракунии захираҳои сеюм дар домени асосии лоиҳа ё зердомени он метавонад махфияти корбаронро зери хатар гузорад ва ба лоиҳаи асосии веб таъсири манфӣ расонад.

Агар системаи CDN-и шумо дуруст танзим нашуда бошад, шумо метавонед кукиҳои домени худро ба хидмати тарафи сеюм фиристед. Агар филтркунии дуруст дар сатҳи CDN ташкил карда нашавад, пас кукиҳои сессияи шумо, ки одатан дар JavaScript истифода намешаванд (бо httponly), метавонад ба мизбони хориҷӣ фиристода шавад.

Ин маҳз ҳамон чизест, ки бо трекерҳо ба монанди Eulerian ё Criteo рӯй дода метавонад. Назоратчиёни тарафи сеюм шояд дар куки идентификатори беназир гузошта бошанд. Агар онҳо як қисми маводи сайт мебуданд, онҳо метавонистанд идентификаторро бо ихтиёри худ ҳангоми кор бо захираҳои гуногуни веб кор кунанд.

Дар ин рӯзҳо, аксари браузерҳо аз ин намуди рафтори трекер муҳофизат мекунанд. Натичаи хамин аст, ки холо трекерхо технологияро истифода мебаранд CNAME Cloaking, ҳамчун скриптҳои худ барои лоиҳаҳои гуногун маскара мекунанд. Маҳз, трекерҳо ба соҳибони сайт пешниҳод мекунанд, ки ба танзимоти худ барои домени муайян CNAME илова кунанд, ки суроғаи он одатан ба маҷмӯи тасодуфии аломатҳо монанд аст.

Ҳарчанд тавсия дода намешавад, ки кукиҳои вебсайт барои ҳама зердоменҳо дастрас карда шаванд (масалан - *.website.com), бисёр сайтҳо ин корро мекунанд. Дар ин ҳолат, чунин кукиҳо ба таври худкор ба трекери пинҳоншудаи тарафи сеюм фиристода мешаванд. Дар натиҷа, мо дигар наметавонем дар бораи ягон махфият сӯҳбат кунем.

Инчунин, ҳамин чиз бо сарлавҳаҳои HTTP рӯй медиҳад Мизоҷ - Маслиҳатҳо, ки танҳо ба домени асосӣ фиристода мешаванд, зеро онҳо метавонанд барои эҷод истифода шаванд изи ангуштони рақамӣ корбар. Боварӣ ҳосил кунед, ки хидмати CDN, ки шумо истифода мекунед, ин сарлавҳаҳоро дуруст филтр мекунад.

Натиҷаҳо

Агар шумо ният доред, ки ба зудӣ хостинги худидоракунии захираҳои сеюмро амалӣ кунед, иҷозат диҳед ба шумо чанд маслиҳат диҳам:

  • Муҳимтарин китобхонаҳои JS, шрифтҳо ва файлҳои CSS-и худро ҷойгир кунед. Ин хатари нокомии сайт ё таназзули фаъолиятро аз сабаби мавҷуд набудани манбаи муҳим барои сайт бо айби хидмати тарафи сеюм коҳиш медиҳад.
  • Пеш аз он ки захираҳои тарафи сеюмро дар CDN кэш кунед, боварӣ ҳосил кунед, ки ҳангоми номгузории файлҳои онҳо ягон намуди системаи версиявӣ истифода мешавад ё шумо метавонед давраи ҳаёти ин захираҳоро тавассути ба таври дастӣ ё худкор аз нав танзим кардани кэши CDN ҳангоми нашри версияи нави CDN идора кунед. скрипт.
  • Дар бораи CDN, сервери прокси ва танзимоти кэш хеле эҳтиёт бошед. Ин ба шумо имкон медиҳад, ки аз фиристодани кукиҳо лоиҳа ё сарлавҳаҳои шумо пешгирӣ кунед Client-Hints хизматрасониҳои шахсони сеюм.

Хонандагони азиз! Оё шумо маводи одамони дигарро дар серверҳои худ ҷойгир мекунед, ки барои амалисозии лоиҳаҳои шумо бениҳоят муҳиманд?

Сарчашмаҳои шахсии сеюм: хуб, бад, зишт
Сарчашмаҳои шахсии сеюм: хуб, бад, зишт

Манбаъ: will.com

Илова Эзоҳ