Ho iniziato a sviluppare applicazioni web non molto tempo fa, quindi per me ci sono molte cose sconosciute in questo campo. La mia domanda riguarda lo sviluppo web usando il linguaggio Java. Supponiamo di dover sviluppare un'applicazione client-server, in cui il client è un browser. Per quanto ne so, ci sono almeno due modi per comunicare.
-
Un server HTTP funziona sul lato server e un contenitore per un'applicazione Java (back-end). Il server HTTP reindirizza le richieste a un'altra porta, che è associata con l'applicazione Java. L'applicazione Java invia alle pagine client con contenuto dinamico da un database, ad esempio, come risposta a una richiesta concreta del client. L'applicazione utilizza un modello enginge per questo. Timeleaf o Velocity, ad esempio.
-
Un server HTTP invia solo file statici (pagine HTML, file CSS e Javascript) e inoltre un client inizia a inviare richieste asincrone al server utilizzando il codice Javascript. Le richieste vengono inviate tramite HTTP / HTTPS nel formato JSON (o XML). Questo approccio utilizza i principi REST. Un'applicazione server scritta in Java accetta queste richieste da una determinata porta, le elabora e invia le risposte nello stesso modo. Una pagina si aggiorna dinamicamente sul lato client, senza ricaricare.
Anche se ho scritto su Java, questi approcci sono usati con altri linguaggi di programmazione, ad esempio Python.
Mi è stato detto che il primo approccio è considerato negativo nella comunità Java. Ma non ho sentito argomenti concreti. Mi piacerebbe conoscerli.
Mille grazie per il tuo tempo e le tue risposte.