Ogni volta che si accede a un sito web, il browser deve rendere quella pagina in modo che sia pre­sen­ta­ta in modo ac­cat­ti­van­te e offra il grado di in­te­rat­ti­vi­tà de­si­de­ra­to. Tuttavia, a seconda dell’approccio di pro­gram­ma­zio­ne del progetto web, gli script dinamici e il codice statico possono essere elaborati in modi molto diversi. Vediamo da vicino i tre approcci più im­por­tan­ti: rendering lato server, rendering lato client e ge­ne­ra­zio­ne di siti statici.

Rendering lato server o Server-Side Rendering (SSR)

Il rendering o scripting lato server (in inglese co­no­sciu­to come “server-side rendering” o “server-side scripting”) è una tecnica uti­liz­za­ta nello sviluppo di siti web con elementi dinamici e ap­pli­ca­zio­ni web. Si basa sull’uso di script che vengono eseguiti dal server web ser­ven­do­si di linguaggi di script adeguati quando si richiede il contenuto cor­ri­spon­den­te con il browser. Tutte le istru­zio­ni HTML, CSS e Ja­va­Script sono caricate com­ple­ta­men­te con la richiesta iniziale.

N.B.

Il codice sorgente degli script lato server non è visibile dall’utente!

Agli albori del World Wide Web, il rendering lato server era quasi esclu­si­va­men­te rea­liz­za­to da svi­lup­pa­to­ri che scri­ve­va­no programmi in C, Perl e script a riga di comando. Queste ap­pli­ca­zio­ni venivano eseguite e in­ter­pre­ta­te dal sistema operativo del server, dopodiché il risultato poteva essere trasmesso dal server web al browser in uso at­tra­ver­so la Common Gateway Interface (CGI).

Tipici linguaggi di pro­gram­ma­zio­ne per il rendering lato server sono i seguenti:

  • Java
  • Ruby
  • ASP.NET
  • Perl
  • PHP
  • Python
  • Node.js o Ja­va­Script

Quali sono i vantaggi dello scripting lato server?

La grande forza di SSR risiede nel fatto che le pagine web sono pre­ca­ri­ca­te dal server. Dal punto di vista dell’utente, una richiesta viene elaborata quasi im­me­dia­ta­men­te e la pagina ri­chia­ma­ta viene perciò vi­sua­liz­za­ta molto ra­pi­da­men­te. Questo approccio per ot­ti­miz­za­re la velocità di ca­ri­ca­men­to è par­ti­co­lar­men­te adatto ai siti web statici. Il ca­ri­ca­men­to veloce della pagina ha anche un effetto positivo sulla va­lu­ta­zio­ne da parte dei motori di ricerca, perché i crawler possono rilevare le pagine più fa­cil­men­te o più ra­pi­da­men­te grazie al rendering lato server.

Quali sono gli svantaggi del rendering lato server?

Lo scripting lato server richiede che il server fornisca pagine HTML pre­ca­ri­ca­te a ogni richiesta. In par­ti­co­la­re, se un client invia con­ti­nua­men­te ulteriori richieste al server web per fornire all’utente nuove in­for­ma­zio­ni mo­di­fi­ca­te, le capacità del server ri­sul­te­ran­no so­vrac­ca­ri­ca­te. Il rendering lato server (SSR) non è quindi adatto per i siti web che hanno un alto numero di richieste o che ri­chie­do­no un gran numero di in­te­ra­zio­ni utente. Nei progetti di questo tipo, il tempo di risposta del server web an­nul­le­reb­be il vantaggio del ca­ri­ca­men­to ot­ti­miz­za­to della pagina.

Consiglio

Un ambiente di hosting sicuro, stabile e per­for­man­te pone le basi per il successo del vostro progetto web. Scegliete un pacchetto di web hosting su IONOS e be­ne­fi­cia­te di una soluzione scalabile con i più alti standard di sicurezza e un dominio personale incluso.

Rendering lato client o Client-Side Rendering (CSR)

La tecnica del rendering o scripting lato client (in inglese co­no­sciu­to come “client-side rendering” o “client-side scripting”) è uti­liz­za­ta prin­ci­pal­men­te dagli svi­lup­pa­to­ri web per rea­liz­za­re progetti con contenuti dinamici. In questo caso, gli script pro­gram­ma­ti non vengono eseguiti ed elaborati dal server, ma dal browser in uso. A questo scopo, gli script sono in­cor­po­ra­ti nel documento HTML o XHTML o scritti in un file separato collegato al documento.

Quando l’utente richiama un sito web con script lato client, il server web invia il documento HTML e gli script al browser, che li esegue e presenta il risultato finale. Gli script lato client possono anche contenere istru­zio­ni concrete per il browser web su come dovrebbe reagire a certe azioni dell’utente, per esempio al clic di un pulsante. Spesso il client non deve ri­sta­bi­li­re il contatto con il server web.

Il lin­guag­gio di scripting lato client più im­por­tan­te è Ja­va­Script.

N.B.

Teo­ri­ca­men­te, qualsiasi lin­guag­gio di scripting adatto può essere usato per il rendering lato client. Tuttavia, affinché il progetto possa essere caricato in seguito da tutti i diversi gruppi di utenti, tutti i browser per­ti­nen­ti do­vreb­be­ro anche sup­por­tar­lo, il che è at­tual­men­te possibile solo con Ja­va­Script.

Quali sono i vantaggi dello scripting lato client?

Il rendering lato client (CSR) è un approccio utile so­prat­tut­to per i progetti web con molte in­te­ra­zio­ni utente. Se il processo di ca­ri­ca­men­to iniziale del sito web è re­la­ti­va­men­te lungo, il suc­ces­si­vo rendering delle pagine suc­ces­si­ve è più veloce. L’espe­rien­za utente è si­gni­fi­ca­ti­va­men­te migliore che con il rendering lato server, poiché non tutti gli script e i contenuti devono essere caricati com­ple­ta­men­te in una volta sola quando l’utente richiama una nuova pagina.

Poiché gli script vengono eseguiti nel browser dell’utente, questi ha la pos­si­bi­li­tà di vi­sua­liz­za­re il codice sorgente, a dif­fe­ren­za di quanto accade con gli script lato server.

Quali sono gli svantaggi del rendering lato client?

Gli script lato client pre­sen­ta­no due problemi cruciali: in primo luogo, è più difficile per i motori di ricerca rilevare e in­di­ciz­za­re le pagine. I crawler di Google sono in grado di farlo, ma le con­di­zio­ni SEO non sono ottimali in questo caso, so­prat­tut­to perché molti altri motori di ricerca spesso non riescono affatto a in­di­ciz­za­re le pagine ren­de­riz­za­te lato client.

D’altra parte, lo scripting lato client richiede che Ja­va­Script sia sup­por­ta­to dal browser. So­li­ta­men­te è sempre così, ma poiché anche i pop-up e gli strumenti di trac­cia­men­to si basano sulla tecnica CSR e gli script lato client in­fluen­za­no il tempo di ca­ri­ca­men­to, ci sono varie esten­sio­ni del browser che bloccano gli script.

Ge­ne­ra­zio­ne di siti statici o Static Site Ge­ne­ra­tion (SSG)

La tendenza degli ultimi anni mostra che i siti web si av­vi­ci­na­no sempre più alle app in termini di layout: un alto grado di reat­ti­vi­tà e in­te­rat­ti­vi­tà è al­tret­tan­to im­por­tan­te quanto una vasta gamma di contenuti. Gli utenti si aspettano tempi di ca­ri­ca­men­to veloci e un’espe­rien­za utente perfetta in cui, per esempio, le pagine non devono sempre essere ri­ca­ri­ca­te da zero. Allo stesso tempo, gli am­mi­ni­stra­to­ri dei siti web non perdono di vista l’aspetto SEO e cercano anche di po­si­zio­nar­si il più in alto possibile nei risultati di ricerca di Google.

Un approccio che mira a combinare le esigenze qui citate è la ge­ne­ra­zio­ne di siti statici. Grazie ai ge­ne­ra­to­ri di siti statici vengono create pagine HTML che uti­liz­za­no modelli per essere ri­pro­du­ci­bi­li in qualsiasi momento quando un client avvia una richiesta. A dif­fe­ren­za del rendering lato server, il rendering SSG avviene in anticipo (prima della richiesta del client), il che mantiene la velocità di ca­ri­ca­men­to più bassa possibile.

Tra i ge­ne­ra­to­ri di siti statici più popolari rientrano i seguenti:

  • Jekyll
  • Hugo
  • Next
  • Gatsby
  • Gridsome
  • Nuxt
  • Hexo
  • Eleventy
  • Jigsaw
  • Vuepress

Quali sono i vantaggi della ge­ne­ra­zio­ne di siti statici?

La ge­ne­ra­zio­ne di siti statici mostra i suoi punti di forza so­prat­tut­to nei progetti che hanno molti contenuti che non cambiano re­go­lar­men­te. Degli esempi tipici sono un sito personale o un blog, che pre­sen­ta­no ti­pi­ca­men­te pochi contenuti dinamici e be­ne­fi­cia­no no­te­vol­men­te della massima velocità ri­sul­tan­te dal pre­ren­de­ring (cioè dal pre­ca­ri­ca­men­to della pagina) da parte di un ge­ne­ra­to­re di siti statici. Inoltre, i progetti SSG sono meno soggetti ad attacchi, poiché il po­ten­zia­le di rischio è limitato al singolo clic quando il client vi­sua­liz­za la pagina.

Consiglio

De­si­de­ra­te di­stri­bui­re i vostri siti statici di­ret­ta­men­te tramite GitHub? È possibile con Deploy Now di IONOS. Di­stri­bui­te i vostri siti web statici da GitHub di­ret­ta­men­te su un’in­fra­strut­tu­ra geo­ri­don­dan­te e protetta da attacchi DDoS, senza limiti di co­stru­zio­ne o di larghezza di banda.

Quali sono gli svantaggi della ge­ne­ra­zio­ne di siti statici?

Il pre­ren­de­ring nel contesto di SSG non ha solo vantaggi: l’approccio si rivela estre­ma­men­te im­pra­ti­ca­bi­le quando un progetto web è soggetto a cam­bia­men­ti regolari, sia di natura tecnica che in termini di contenuto. A ogni modifica, le pagine statiche del progetto web devono essere “pre­ca­ri­ca­te” di nuovo. Più esteso è il progetto, più tempo richiede questo processo di co­stru­zio­ne, ed è per questo che la ge­ne­ra­zio­ne di siti statici non è adatta a siti web con un gran numero di pagine statiche.

Con­clu­sio­ne: SSR vs. CSR vs. SSG

Il rendering lato server assicura un ca­ri­ca­men­to delle pagine ec­cel­len­te, che però comporta un carico elevato sul server web. Il rendering lato client va nella direzione opposta e al­leg­ge­ri­sce il carico del server rendendo prima una gran parte della pagina nel browser, a patto che l’utente non abbia bloccato Ja­va­Script. La ge­ne­ra­zio­ne di siti statici risparmia sia il server che il client e, grazie all’approccio di pre­ren­de­ring, assicura una consegna veloce del contenuto, a con­di­zio­ne che non si tratti di contenuti in­te­rat­ti­vi e in continuo cam­bia­men­to.

Tutte e tre queste strategie per il rendering dei progetti web hanno i loro pro e contro. Valutate at­ten­ta­men­te quali ca­rat­te­ri­sti­che si adattano meglio al vostro progetto per trovare l’approccio migliore per la vostra ap­pli­ca­zio­ne web.

N.B.

Buoni tempi di ca­ri­ca­men­to, in­te­rat­ti­vi­tà veloce e un layout stabile sono tra le metriche più im­por­tan­ti dei segnali web es­sen­zia­li di Google. Potete desumere se avete scelto la giusta strategia di rendering per il vostro progetto web anche dalle va­lu­ta­zio­ni del servizio di Google, che si basa in­te­ra­men­te sui dati degli utenti.

Vai al menu prin­ci­pa­le