Qual è la differenza tra la programmazione lato client e lato server?

Ho questo codice:

 var foo = 'bar';  var baz = ; alert(baz);  

Perché questo non scrive “barra” nel mio file di testo, ma avverte “42”?


NB: le revisioni precedenti di questa domanda riguardavano esplicitamente PHP sul server e JavaScript sul client. La natura essenziale del problema e le soluzioni sono le stesse per ogni coppia di linguaggi quando uno è in esecuzione sul client e l’altro sul server. Si prega di prendere in considerazione quando si vedono le risposte parlando di lingue specifiche.

Il tuo codice è diviso in due parti completamente separate, lato server e lato client .

  | ----------> HTTP request | +--------------+ | +--------------+ | | | | | | browser | | | web server | | (JavaScript) | | | (PHP etc.) | | | | | | +--------------+ | +--------------+ | client side | server side | <---------- HTML, CSS, JavaScript | 

Le due parti comunicano tramite richieste e risposte HTTP. PHP viene eseguito sul server ed emette codice HTML e forse JavaScript che viene inviato come risposta al client dove l'HTML viene interpretato e il JavaScript viene eseguito. Una volta che PHP ha terminato l'output della risposta, lo script termina e non accade nulla sul server fino a quando non arriva una nuova richiesta HTTP.

Il codice di esempio viene eseguito in questo modo:

  

Passaggio 1, PHP esegue tutto il codice tra i . Il risultato è questo:

  

La chiamata a file_put_contents non ha dato alcun risultato, ha appena scritto "+ foo +" in un file. call ha generato l'output "42", che ora si trova nel punto in cui si trovava quel codice.

Questo codice HTML / JavaScript risultante viene ora inviato al client, dove viene valutato. La chiamata di alert funziona, mentre la variabile foo non viene utilizzata da nessuna parte.

Tutto il codice PHP viene eseguito sul server prima che il client inizi a eseguire qualsiasi JavaScript. Non è rimasto codice PHP nella risposta con cui JavaScript potrebbe interagire.

Per chiamare qualche codice PHP, il client dovrà inviare una nuova richiesta HTTP al server. Questo può accadere usando uno dei tre metodi possibili:

  1. Un collegamento, che fa sì che il browser carichi una nuova pagina.
  2. Un'invio di modulo, che invia dati al server e carica una nuova pagina.
  3. Una richiesta AJAX , che è una tecnica Javascript per fare una richiesta HTTP regolare al server (come 1. e 2. sarà), ma senza lasciare la pagina corrente.

Ecco una domanda che descrive questi metodi in maggior dettaglio

È inoltre ansible utilizzare JavaScript per aprire il browser in una nuova pagina utilizzando window.location o inviare un modulo, emulando le possibilità 1. e 2.

Per determinare il motivo per cui il codice PHP non funziona nel codice JavaScript , dobbiamo capire cos’è il lato client e il linguaggio lato server e come funzionano.

Lingue lato server (PHP ecc.) : Recuperano i record dai database, mantengono lo stato tramite la connessione HTTP stateless e fanno molte cose che richiedono sicurezza. Risiedono sul server, questi programmi non hanno mai il loro codice sorgente esposto all’utente

Immagine da wikipedia_http: //en.wikipedia.org/wiki/File: Scheme_dynamic_page_en.svg immagine attr

Quindi puoi facilmente vedere che la lingua lato server gestisce la richiesta HTTP e la processa e come @deceze dice che PHP è eseguito sul server ed emette codice HTML e forse JavaScript che viene inviato come risposta al client dove l’HTML è interpretato e il JavaScript viene eseguito.

Mentre d’altra parte Client Side Language (come JavaScript) risiede sul browser e gira al browser, lo scripting lato client si riferisce generalmente alla class di programmi per computer sul web che vengono eseguiti lato client, dal browser web dell’utente, invece di lato server .

JavaScript è visibile all’utente e può essere facilmente modificato, quindi per questioni di sicurezza non dobbiamo fare affidamento su JavaScript.

Quindi, quando si effettua una richiesta HTTP sul server, il server prima legge il file PHP con attenzione per vedere se ci sono attività che devono essere eseguite e invia risposta al client e ancora come @deceze ha detto * Una volta che PHP ha finito di emettere la risposta , lo script termina e non succederà nulla sul server finché non arriva una nuova richiesta HTTP . *

Rappresentazione grafica

Fonte immagine

Quindi, ora cosa posso fare se ho bisogno di chiamare PHP? Dipende da come è necessario farlo: ricaricando la pagina o utilizzando una chiamata AJAX.

  1. Puoi farlo ricaricando la pagina e inviando la richiesta HTTP
  2. puoi effettuare chiamate AJAX con JavaScript e questo non richiede la pagina di ricaricamento

Buona lettura:

  1. Wikipedia: scripting lato server
  2. Wikipedia: scripting lato client
  3. Madara Uchiha: Differenza tra client e programmazione lato server

Il tuo Javascript verrà eseguito sul client, non sul server. Ciò significa che foo non viene valutato sul lato server e pertanto il suo valore non può essere scritto su un file sul server.

Il modo migliore per pensare a questo processo è come se si stesse generando un file di testo in modo dinamico. Il testo che stai generando diventa solo codice eseguibile dopo che il browser lo ha interpretato. Solo ciò che collochi tra i tag viene valutato sul server.

A proposito, prendere l'abitudine di incorporare pezzi casuali di logica PHP in HTML o Javascript può portare a codice seriamente contorto. Parlo per esperienza dolorosa.

Nell’applicazione web ogni attività viene eseguita in una modalità di richiesta e risposta.

La programmazione lato client è con codice html con script Java e relativi framework, le librerie vengono eseguite in Internet Explorer, Mozilla, browser Chrome. Nello scenario Java le servlet di programmazione lato server vengono eseguite in Tomcat, web-logic, j boss, sever di WebSphere

Proverò a spiegarlo in modo semplice.

Lato client è ciò che l’utente vede / codice che è visibile sul browser.

La programmazione lato client include HTML (HTML, HTML5, DHTML), CSS (CSS, CSS3) e JavaScript (JavaScript, ES5, ES6, ES7, TypeScript, JQuery, ReactJs, AngularJs, BackboneJs o qualsiasi altro framework di front-end JavaScript).

La programmazione lato client si focalizza su “come sarà la pagina” e sul suo comportamento rispetto ai browser.

  1. HTML è ciò che vediamo.
  2. Il CSS decide la sua progettazione (Colori, Immagini fluttuanti, Riempimento, ecc.).
  3. Informazioni sulla pagina del monitor JavaScript. Tutte le chiamate API e la gestione dei dati su DOM vengono eseguite da JavaScript.

La programmazione lato server include il codice che fornisce i dati al lato client. L’utente non è mai in grado di vedere sul lato server.

La programmazione lato server include il linguaggio di programmazione (Java, PHP, .Net, C #, C, C ++, NodeJS ecc.), Database (SQL, Oracle, MySql, PostgreySql, No-Sql, MongoDB, ecc.), API di terze parti (Rest, Soap ), Logica di business.

La programmazione lato server è incentrata su “come rendere disponibili i dati per il lato client”.

  1. Server-Side Language è responsabile della comunicazione tra diverse fonti di dati come database, API di terze parti, file system, blockchain ecc. Questi linguaggi mantengono determinate API per l’interazione con il lato client.
  2. Il database è responsabile della memorizzazione delle informazioni.
  3. Business Logic definisce “come utilizzare i dati e cosa fare con i dati”.

Dati di richiesta lato client o richiesta di archiviazione dei dati, dal lato server tramite API fornita da Server-Side. Questa richiesta e risposta dei dati viene eseguita seguendo il protocollo HTTP / FTP come API REST, API SOAP.