Cosa significa lato client e lato server? | Lato client e lato server

Il lato client e il lato server descrivono dove viene eseguito il codice dell'applicazione Web.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Comprendere il modello client-server
  • Scoprire i tipi di processi che hanno luogo su client e server
  • Scoprire come client e server si relazionano al frontend e al backend dell'applicazione
  • Scoprire come l'utilizzo di un'architettura serverless influisce sui processi lato server

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Cosa significa lato client e lato server?

Lato client e lato server sono termini di sviluppo Web che descrivono dove viene eseguito il codice dell'applicazione. Gli sviluppatori Web chiamano questa distinzione anche frontend e backend, sebbene lato client/lato server e frontend/backend non siano esattamente la stessa cosa. In un'architettura serverless, il fornitore serverless ospita e assegna risorse a tutti i processi lato server e i processi aumentano man mano che aumenta l'utilizzo delle applicazioni.

Cos'è il modello client-server?

Gran parte di Internet si basa sul modello client-server. In questo modello, per ottenere i dati di cui hanno bisogno i dispositivi degli utenti, anziché comunicare tra loro, comunicano tramite una rete con server situati centralmente. I dispositivi degli utenti finali come laptop, smartphone e computer desktop sono considerati "client" dei server, come se fossero clienti che ottengono servizi da un'azienda. I dispositivi client inviano richieste ai server per pagine Web o applicazioni e i server forniscono le risposte.

Il modello client-server viene utilizzato perché i server sono in genere più potenti e più affidabili dei dispositivi degli utenti. Vengono inoltre sottoposti a manutenzione costante e conservati in ambienti controllati per garantire che siano sempre attivi e disponibili; anche se singoli server possono non funzionare, solitamente ci sono altri server che li supportano. Allo stesso tempo, gli utenti possono accendere e spegnere i propri dispositivi, oppure perderli o romperli, senza che ciò influisca negativamente sul servizio Internet per gli altri utenti.

I server possono servire più dispositivi client contemporaneamente e ogni dispositivo client invia richieste a più server durante l'accesso e la navigazione in Internet.

Interagiscono più client e server:

Relazione molti-a-molti all'interno del modello client-server

Ogni client comunicherà con più server e viceversa.

Supponiamo che un utente stia navigando in Internet e digiti "netflix.com" nella barra del browser. Ciò si traduce in una richiesta ai server DNS per l'indirizzo IP di netflix.com e i server DNS rispondono a questa richiesta fornendo l'indirizzo IP al browser. Successivamente, il browser dell'utente invia una richiesta ai server Netflix (utilizzando l'indirizzo IP) per il contenuto che appare sulla pagina, come le immagini in miniatura del film, il logo Netflix e la barra di ricerca. I server Netflix inviano il contenuto al browser, il quale a sua volta carica la pagina sul dispositivo client.

Cosa significa lato client?

Nello sviluppo Web, "lato client" si riferisce a tutto ciò che in un'applicazione Web viene visualizzato o eseguito sul client (dispositivo dell'utente finale). Ciò include ciò che l'utente vede, come testo, immagini e il resto dell'interfaccia utente, insieme a qualsiasi azione eseguita da un'applicazione all'interno del browser dell'utente.

I linguaggi di markup come HTML e CSS vengono interpretati dal browser sul lato client. Inoltre, molti sviluppatori contemporanei stanno includendo processi lato client nell'architettura delle loro applicazioni e stanno abbandonando l'idea di fare tutto sul lato server; la logica aziendale per le pagine web dinamiche*, ad esempio, solitamente viene eseguita lato client in una moderna applicazione Web. I processi lato client sono quasi sempre scritti in JavaScript.

Nell'esempio netflix.com riportato sopra, l'HTML, il CSS e il JavaScript che determinano il modo in cui la pagina principale di Netflix appare all'utente vengono interpretati dal browser sul lato client. La pagina può anche rispondere agli "eventi": ad esempio, se il mouse dell'utente passa sopra una delle immagini in miniatura del film, l'immagine si espande e le miniature adiacenti si spostano leggermente su un lato per fare spazio all'immagine più grande. Questo è un esempio di processo lato client; il codice all'interno della pagina Web stessa risponde al mouse dell'utente e avvia questa azione senza comunicare con il server.

Il lato client è anche noto come frontend, sebbene questi due termini non significhino esattamente la stessa cosa. Il lato client si riferisce esclusivamente alla posizione in cui vengono eseguiti i processi, mentre il frontend si riferisce ai tipi di processi che vengono eseguiti sul lato client.

*Una pagina Web dinamica è una pagina Web che non visualizza lo stesso contenuto per tutti gli utenti e cambia in base all'input dell'utente. La home page di Facebook è una pagina dinamica mentre la pagina di accesso di Facebook è per la maggior parte statica.

Cosa significa lato server?

Proprio come con il lato client, "lato server" significa tutto ciò che accade sul server invece che sul client. In passato, quasi tutta la logica aziendale veniva eseguita sul lato server e ciò includeva il rendering di pagine Web dinamiche, l'interazione con i database, l'autenticazione dell'identità e le notifiche push.

Il problema di ospitare tutti questi processi sul lato server è che ogni richiesta che coinvolge anche solo uno di essi deve ogni volta percorrere tutto l'itinerario dal client al server. Ciò introduce una grande quantità di latenza. Per questo motivo, le applicazioni contemporanee eseguono più codice sul lato client; un caso d'uso è il rendering di pagine Web dinamiche in tempo reale eseguendo script all'interno del browser che apportano modifiche al contenuto visualizzato dall'utente.

Come con "frontend" e "lato client", anche backend è un termine che si riferisce ai processi che avvengono sul server, sebbene backend si riferisca solo ai tipi di processi e lato server si riferisca alla posizione in cui vengono eseguiti i processi.

Cos'è lo scripting lato client? Cos'è lo scripting lato server?

Lo scripting lato client consiste semplicemente nell'esecuzione di script, come JavaScript, sul dispositivo client, solitamente all'interno di un browser. Tutti i tipi di script possono essere eseguiti sul lato client se sono scritti in JavaScript, perché JavaScript è supportato universalmente. Altri linguaggi di scripting possono essere utilizzati solo se il browser dell'utente li supporta.

Gli script lato server vengono eseguiti sul server anziché sul client, spesso per fornire contenuti dinamici alle pagine Web in risposta alle azioni dell'utente. Gli script lato server non possono essere scritti in JavaScript, poiché il server può supportare una varietà di linguaggi.

Gli script vengono eseguiti lato client e lato server:

Scripting lato client e scripting lato server

I dati passano avanti e indietro tra il client e il server e gli script possono essere eseguiti su entrambi i lati.

Come funzionano i processi lato server in un'architettura serverless?

Nell'elaborazione serverless, tutti i processi lato server o backend vengono ancora eseguiti sui server anziché sui dispositivi client, ma non vengono distribuiti su alcun server o set di server specifico. I processi di backend sono suddivisi in funzioni, che vengono eseguite su richiesta e si espandono automaticamente. Gli sviluppatori possono comunque creare tutte le funzionalità che normalmente vengono eseguite lato server all'interno di un'architettura serverless.

Cloudflare Workers viene eseguito lato server o lato client?

I Cloudflare Workers sono funzioni JavaScript serverless eseguite su richiesta e vengono eseguite sulla rete perimetrale utilizzata da Cloudflare per la memorizzazione della CDN nella cache, tra il client e il server di origine. Ciò consente agli sviluppatori di creare backend serverless che, sebbene tecnicamente lato server, si trovano il più vicino possibile al dispositivo client, riducendo la latenza e facendo sì che le applicazioni rispondano più rapidamente alle interazioni dell'utente.

Per iniziare a utilizzare Cloudflare Workers, consulta la documentazione per gli sviluppatori.