{"id":54566,"date":"2019-12-29T00:00:00","date_gmt":"2019-12-28T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/samostoyatelnyj-hosting-storonnih-resursov-horoshij-plohoj-zloj"},"modified":"2020-02-18T14:02:35","modified_gmt":"2020-02-18T11:02:35","slug":"samostoyatelnyj-hosting-storonnih-resursov-horoshij-plohoj-zloj","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samostoyatelnyj-hosting-storonnih-resursov-horoshij-plohoj-zloj","title":{"rendered":"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Negli ultimi anni, sempre pi\u00f9 piattaforme per l'ottimizzazione di progetti frontend offrono la possibilit\u00e0 di auto-hosting o di proxy di risorse esterne. Akamai consente di impostare <noindex><a rel=\"nofollow\" href=\"https:\/\/community.akamai.com\/customers\/s\/article\/5-ways-to-prevent-slow-3rd-party-front-end-services?language=en_US\">parametri specifici<\/a><\/noindex> per URL creati autonomamente. Cloudflare ha la tecnologia Edge Workers. Fasterzine pu\u00f2 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.fasterize.com\/en\/blog\/https-the-impact-on-your-loading-times\/\">riscrivere<\/a><\/noindex> URL sulle pagine in modo che puntino a risorse esterne situate sul dominio principale del sito.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/481574\/\"><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/61f87db89ba8c5f4bf030a4004df56f3.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Se si sa che i servizi esterni utilizzati nel proprio progetto non cambiano frequentemente e che il processo di consegna agli utenti pu\u00f2 essere migliorato, sicuramente si star\u00e0 pensando di fare proxy a tali servizi. Con questo approccio \u00e8 possibile 'avvicinare' queste risorse agli utenti e ottenere un controllo maggiore sulla loro memorizzazione nella cache lato client. Inoltre, ci\u00f2 protegge gli utenti da inconvenienti causati dal 'crollo' di un servizio esterno o dalla degradazione delle sue prestazioni.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Buono: aumento delle prestazioni<\/h2>\n<p>\nL'auto-hosting di risorse esterne migliora le prestazioni in maniera piuttosto ovvia. Il browser non deve effettuare ulteriori richieste DNS, non deve stabilire una connessione TCP e non deve eseguire un handshake TLS su un dominio esterno. L'effetto dell'auto-hosting delle risorse esterne sulle prestazioni pu\u00f2 essere osservato confrontando i due seguenti grafici.<\/p>\n<p><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/ee0a0ccb712a873d10b8de0dbc7ef84a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Risorse esterne caricate da fonti esterne (presa da <noindex><a rel=\"nofollow\" href=\"https:\/\/csswizardry.com\/2019\/05\/self-host-your-static-assets\/\">da qui<\/a><\/noindex>)<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/e9ee0b858dbb1aa7c6476d8bf954fc62.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Risorse esterne memorizzate insieme ai restanti materiali del sito (presa da <noindex><a rel=\"nofollow\" href=\"https:\/\/csswizardry.com\/2019\/05\/self-host-your-static-assets\/\">da qui<\/a><\/noindex>)<\/i><\/p>\n<p>La situazione \u00e8 ulteriormente migliorata dal fatto che il browser sfrutter\u00e0 le capacit\u00e0 di multiplexing e prioritizzazione dei dati della connessione HTTP\/2, gi\u00e0 stabilita con il dominio principale.<\/p>\n<p>Se non si ospitano risorse esterne, esse verranno caricate da un dominio diverso da quello principale, e non potranno essere prioritarie. Ci\u00f2 comporter\u00e0 che le risorse competono tra loro per la larghezza di banda del client. Questo potrebbe causare tempi di caricamento per materiali critici per la formazione della pagina molto superiori ai tempi raggiungibili in condizioni ideali. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=nOW-i6bbRdo\">Ecco<\/a><\/noindex> presentazione sulla prioritizzazione HTTP\/2, in cui tutto ci\u00f2 viene spiegato molto bene.<\/p>\n<p>Si pu\u00f2 supporre che l'uso degli attributi nei collegamenti a risorse esterne <code>preconnect<\/code> aiuter\u00e0 a risolvere il problema. Tuttavia, se ci sono troppi collegamenti a vari domini, questo potrebbe, in effetti, sovraccaricare la linea di comunicazione nel momento critico.<\/p>\n<p>Se si ospitano risorse esterne autonomamente, si pu\u00f2 controllare come queste risorse vengono restituite al cliente. In particolare, si tratta di quanto segue:<\/p>\n<ul>\n<li>\u00c8 possibile garantire l'applicazione dell'algoritmo di compressione dei dati pi\u00f9 adatto per ogni browser (Brotli\/gzip).<\/li>\n<li>Si pu\u00f2 aumentare il tempo di caching delle risorse, che di solito, anche presso i provider pi\u00f9 noti, non \u00e8 particolarmente lungo (ad esempio, il valore corrispondente per il tag GA \u00e8 impostato a 30 minuti).<\/li>\n<\/ul>\n<p>\nSi pu\u00f2 persino estendere il parametro TTL per una risorsa, ad esempio a un anno, includendo i materiali appropriati nella propria strategia di gestione del caching (hash URL, versioning e cos\u00ec via). Di questo parleremo pi\u00f9 avanti.<\/p>\n<h3>\u258dProtezione da interruzioni nei servizi esterni o dalla loro disattivazione<\/h3>\n<p>\nUn altro aspetto interessante dell'autonomo hosting di risorse esterne \u00e8 che consente di attenuare i rischi legati alle interruzioni nei servizi esterni. Supponiamo che la soluzione esterna che utilizzate per eseguire test A\/B sia implementata come uno script bloccante, caricato nella sezione head della pagina. Questo script viene caricato lentamente. Se non riesce a caricare lo script corrispondente, la pagina rester\u00e0 vuota. Se richiede molto tempo per il caricamento, la pagina apparir\u00e0 con un grande ritardo. Oppure, supponiamo che nel progetto venga utilizzata una libreria caricata da una risorsa CDN esterna. Immaginiamo che questa risorsa abbia subito un guasto o sia stata bloccata in un certo paese. Una tale situazione porter\u00e0 a violazioni della logica di funzionamento del sito.<\/p>\n<p>Per scoprire come il vostro sito funziona in caso di indisponibilit\u00e0 di un certo servizio esterno, potete utilizzare la sezione SPOF su <noindex><a rel=\"nofollow\" href=\"https:\/\/www.webpagetest.org\/\">webpagetest.org<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/0ffa0b44054ccd16bab33c6b7beff049.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>La sezione SPOF su webpagetest.org<\/i><\/p>\n<h3>\u258dChe dire dei problemi di caching dei materiali nei browser? (suggerimento: \u00e8 un mito)<\/h3>\n<p>\nSi pu\u00f2 pensare che l'uso di CDN pubblici porti automaticamente a una migliore performance delle risorse, dal momento che questi servizi dispongono di reti di alta qualit\u00e0 e sono distribuiti in tutto il mondo. Ma in realt\u00e0, la situazione \u00e8 un po' pi\u00f9 complessa.<\/p>\n<p>Supponiamo di avere diversi siti web: website1.com, website2.com, website3.com. Su tutti questi siti viene utilizzata la libreria jQuery. La colleghiamo a loro utilizzando un CDN, ad esempio - googleapis.com. Ci si potrebbe aspettare che il browser carichi e memorizzi nella cache la libreria una sola volta e poi la utilizzi per lavorare con tutti e tre i siti. Questo potrebbe ridurre il carico sulla rete. Forse questo consentirebbe di risparmiare da qualche parte e aiuterebbe a migliorare la performance delle risorse. Tuttavia, da un punto di vista pratico, tutto appare diverso. Ad esempio, Safari ha implementato una funzionalit\u00e0 chiamata <noindex><a rel=\"nofollow\" href=\"https:\/\/webkit.org\/blog\/7675\/intelligent-tracking-prevention\/\">Intelligent Tracking Prevention<\/a><\/noindex>: nella cache si utilizzano chiavi doppie, basate sulla fonte del documento e sulla fonte della risorsa esterna. <noindex><a rel=\"nofollow\" href=\"https:\/\/andydavies.me\/blog\/2018\/09\/06\/safari-caching-and-3rd-party-resources\/\">Ecco<\/a><\/noindex> ottimo articolo su questo tema.<\/p>\n<p>Ricerche precedenti <noindex><a rel=\"nofollow\" href=\"https:\/\/yuiblog.com\/blog\/2007\/01\/04\/performance-research-part-2\/\">Yahoo<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/code.facebook.com\/posts\/964122680272229\/web-performance-cache-efficiency-exercise\/\">Facebook<\/a><\/noindex>, cos\u00ec come pi\u00f9 recenti <noindex><a rel=\"nofollow\" href=\"https:\/\/discuss.httparchive.org\/t\/analyzing-resource-age-by-content-type\/1659\">ricerca<\/a><\/noindex> Paola Calvano, mostrano che le risorse non rimangono nella cache del browser cos\u00ec a lungo come potremmo aspettarci: \"C'\u00e8 un gap significativo tra il tempo di caching delle risorse interne e di quelle esterne progetto. Parliamo di CSS e font web. Nello specifico, il tempo di caching del 95% dei font interni supera la settimana, mentre il tempo di caching del 50% dei font esterni \u00e8 inferiore a una settimana! Questo fornisce ai web developer motivi validi per effettuare l'auto-hosting dei file dei font!\".<\/p>\n<p>Di conseguenza, se hosti contenuti di terzi, potresti non notare problemi di performance causati dalla memorizzazione nella cache del browser.<\/p>\n<p>Ora che abbiamo esaminato i punti di forza dell'auto-hosting delle risorse esterne, parliamo di come distinguere una buona implementazione di questo approccio da una cattiva.<\/p>\n<h2>Cattiva: il diavolo si nasconde nei dettagli<\/h2>\n<p>\nSpostare risorse esterne sul proprio dominio non pu\u00f2 essere fatto automaticamente, senza garantire un corretto caching di tali risorse.<\/p>\n<p>Uno dei principali problemi qui \u00e8 il tempo di caching. Ad esempio, le informazioni sulle versioni vengono incluse nei nomi degli script esterni pi\u00f9 o meno cos\u00ec: <code>jquery-3.4.1.js<\/code>. Questo file non cambier\u00e0 in futuro, di conseguenza non causer\u00e0 alcun problema con la sua memorizzazione nella cache.<\/p>\n<p>Ma se non viene applicato un certo schema di versioning durante il lavoro con i file, gli script memorizzati nella cache, il cui contenuto cambia mantenendo lo stesso nome del file, possono diventare obsoleti. Questo pu\u00f2 diventare un problema serio poich\u00e9, ad esempio, non consente di applicare automaticamente correzioni di sicurezza agli script, che i clienti devono ricevere il prima possibile. Lo sviluppatore dovr\u00e0 impegnarsi per aggiornare tali script nella cache. Inoltre, questo pu\u00f2 provocare malfunzionamenti dell'applicazione, causati dal fatto che il codice usato dal client nella cache \u00e8 diverso dalla versione aggiornata del codice su cui si basa la parte server del progetto.<\/p>\n<p>Infatti, quando si parla di materiali che vengono aggiornati frequentemente (gestori di tag, soluzioni per il test A\/B), la loro memorizzazione nella cache tramite CDN \u00e8 un compito, sebbene risolvibile, gi\u00e0 molto pi\u00f9 complesso. Servizi come Commanders Act, soluzioni per la gestione dei tag, utilizzano webhook per pubblicare nuove versioni. Questo consente di organizzare il ripristino della cache su CDN, o, meglio ancora, la possibilit\u00e0 di chiamare un aggiornamento dell'hash o della versione dell'URL.<\/p>\n<h3>\u258dVisualizzazione adattiva dei materiali ai clienti<\/h3>\n<p>\nInoltre, quando parliamo di memorizzazione nella cache, \u00e8 necessario considerare anche il fatto che le impostazioni di caching utilizzate su CDN potrebbero non essere adatte per alcune risorse di terze parti. Ad esempio, tali risorse potrebbero utilizzare la tecnologia di sniffer dell'agente utente (user agent sniffing, adaptive serving) per fornire a specifici browser versioni dei materiali ottimizzate appositamente per quei browser. Queste tecnologie, per determinare le capacit\u00e0 del browser, si affidano a espressioni regolari o a un database contenente informazioni sugli header HTTP. <code>User-Agent<\/code>. Una volta che sanno con quale browser hanno a che fare, forniscono materiali ottimizzati per quello specifico browser.<\/p>\n<p>Qui si possono menzionare due servizi. Il primo \u00e8 googlefonts.com. Il secondo \u00e8 polyfill.io. Il servizio Google Fonts fornisce, per una certa risorsa, diverso codice CSS a seconda delle capacit\u00e0 del browser (fornendo link a risorse woff2, utilizzando <code>unicode-range<\/code>).<\/p>\n<p>Questi sono i risultati di alcune richieste a Google Fonts effettuate da diversi browser.<\/p>\n<p><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/5078ce754cc324e42261a1749e96a445.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Risultato della richiesta a Google Fonts, eseguita da Chrome<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/103de3c523a05fdfa230ada49842f124.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Risultato della richiesta a Google Fonts, eseguita da IE10<\/i><\/p>\n<p>Polyfill.io fornisce al browser solo i polyfill necessari. Questo \u00e8 fatto per motivi di prestazioni.<\/p>\n<p>Ad esempio, vediamo cosa succede se eseguiamo la seguente richiesta da diversi browser: <noindex><a rel=\"nofollow\" href=\"https:\/\/polyfill.io\/v3\/polyfill.js?features=default\">https:\/\/polyfill.io\/v3\/polyfill.js?features=default<\/a><\/noindex><\/p>\n<p>In risposta a tale richiesta, eseguita da IE10, arriveranno 34 KB di dati. La risposta a esa richiesta, eseguita da Chrome, sar\u00e0 vuota.<\/p>\n<h2>Malevolo: alcune considerazioni sulla privacy<\/h2>\n<p>\nQuesto punto \u00e8 l'ultimo in ordine ma non per importanza. Si tratta del fatto che l'hosting indipendente di risorse di terze parti sul dominio principale del progetto o sul suo sottodominio pu\u00f2 mettere in pericolo la privacy degli utenti e avere un impatto negativo sul progetto web principale.<\/p>\n<p>Se il tuo sistema CDN \u00e8 configurato in modo errato, tutto pu\u00f2 finire con l'invio dei cookie del tuo dominio a un servizio di terze parti. Se a livello di CDN non viene effettuato un corretto filtraggio, i tuoi cookie di sessione, che normalmente non possono essere utilizzati in JavaScript (con l'attributo <code>httponly<\/code>), possono essere inviati a un host esterno.<\/p>\n<p>\u00c8 proprio questo che pu\u00f2 accadere con tracciatori come Eulerian o Criteo. I tracciatori di terze parti potrebbero aver impostato un identificatore unico nei cookie. Se facevano parte dei materiali dei siti, potevano leggere l'identificatore a loro discrezione durante l'interazione dell'utente con diverse risorse web.<\/p>\n<p>Oggigiorno, la maggior parte dei browser include una protezione contro tali comportamenti dei tracciatori. Di conseguenza, ora i tracciatori utilizzano la tecnologia <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/nextdns\/cname-cloaking-the-dangerous-disguise-of-third-party-trackers-195205dc522a\">CNAME Cloaking<\/a><\/noindex>, camuffandosi come script propri di vari progetti. In particolare, i tracciatori offrono ai proprietari dei siti di aggiungere nelle loro impostazioni un CNAME per un certo dominio, il cui indirizzo di solito appare come una serie casuale di caratteri.<\/p>\n<p>Anche se non \u00e8 consigliato rendere i cookie del sito web accessibili a tutti i sottodomini (ad esempio - *.website.com), molti siti lo fanno. In questo caso, i cookie vengono automaticamente inviati a un tracciatore di terze parti camuffato. Come risultato, non si pu\u00f2 pi\u00f9 parlare di privacy.<\/p>\n<p>Inoltre, lo stesso avviene con le intestazioni HTTP <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/web\/updates\/2015\/09\/automating-resource-selection-with-client-hints\">Client-Hints<\/a><\/noindex>, che vengono inviate solo al dominio principale, poich\u00e9 possono essere utilizzate per creare <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/httpwg\/http-extensions\/issues\/767\">impronta digitale<\/a><\/noindex> dell'utente. Assicurati che il servizio CDN che utilizzi filtri correttamente tali intestazioni.<\/p>\n<h2>Conclusioni<\/h2>\n<p>\nSe hai intenzione di implementare a breve un'auto-ospitante per risorse esterne, ti diamo alcuni consigli:<\/p>\n<ul>\n<li>Ospita localmente le tue pi\u00f9 importanti librerie JS, font e file CSS. Ci\u00f2 ridurr\u00e0 il rischio di downtime del sito o di una diminuzione delle sue prestazioni a causa dell'indisponibilit\u00e0 di una risorsa vitale per il funzionamento del sito a causa di un servizio esterno.<\/li>\n<li>Prima di memorizzare nella cache le risorse esterne su un CDN, assicurati che ci sia un sistema di versioning nei nomi dei file o che tu possa gestire il ciclo di vita di queste risorse, svuotando manualmente o automaticamente la cache del CDN al momento della pubblicazione di una nuova versione dello script.<\/li>\n<li>Fai attenzione alle impostazioni del CDN, del server proxy e della cache. Questo ti aiuter\u00e0 a evitare di inviare i cookie del tuo progetto o intestazioni <code>Client-Hints<\/code> a servizi esterni.<\/li>\n<\/ul>\n<p>\n<b>Gentili lettori!<\/b> Stai ospitando sui tuoi server materiali di terzi che sono estremamente importanti per il funzionamento dei tuoi progetti?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\"><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/30212b2008a5ed0b51a4469d885b9e91.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Hosting autonomo di risorse di terze parti: buono, cattivo, brutto\" src=\"\/wp-content\/uploads\/2019\/12\/7117788d4bd0ef7de47d98a372b72ae7.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/481574\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0443 \u0438\u043b\u0438 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. Akamai \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 URL. \u0423 Cloudflare \u0435\u0441\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f Edge Workers. Fasterzine \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c URL \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0431\u044b \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u0435 \u0441\u0430\u0439\u0442\u0430. \u0415\u0441\u043b\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54566","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0443 \u0438\u043b\u0438 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samostoyatelnyj-hosting-storonnih-resursov-horoshij-plohoj-zloj\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432: \u0445\u043e\u0440\u043e\u0448\u0438\u0439, \u043f\u043b\u043e\u0445\u043e\u0439, \u0437\u043b\u043e\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0443 \u0438\u043b\u0438 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samostoyatelnyj-hosting-storonnih-resursov-horoshij-plohoj-zloj\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-28T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:35+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Auto-ospitare risorse esterne: buono, brutto, cattivo | ProHoster","description":"Negli ultimi anni, sempre pi\u00f9 piattaforme per l'ottimizzazione dei progetti frontend offrono possibilit\u00e0 di auto-ospitare o proxy di risorse esterne.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samostoyatelnyj-hosting-storonnih-resursov-horoshij-plohoj-zloj","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432: \u0445\u043e\u0440\u043e\u0448\u0438\u0439, \u043f\u043b\u043e\u0445\u043e\u0439, \u0437\u043b\u043e\u0439 | ProHoster","og:description":"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0443 \u0438\u043b\u0438 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/samostoyatelnyj-hosting-storonnih-resursov-horoshij-plohoj-zloj","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-28T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54566","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 11:52:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:02:46","updated":"2026-08-11 12:50:28","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/54566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=54566"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/54566\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=54566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=54566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=54566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}