Dovresti sempre programmare lato server per un sito web?

38

Sto per iniziare a creare un sito web di un progetto musicale per un amico. Per ora dovrebbe essere piuttosto semplice: nessun contenuto dinamico (date del tour, ecc.) E nient'altro che poche canzoni di esempio incorporate o collegamenti SoundCloud. Non mi aspetto di utilizzare nulla di più di vanilla JavaScript e Bootstrap o Foundation per una griglia reattiva.

Tuttavia, è abbastanza? Posso semplicemente caricare file HTML, CSS e JS su un host e utilizzarlo, oppure devo prendere il tempo per programmare un server back-end in Node o PHP?

    
posta Deegriz 01.08.2016 - 02:11
fonte

5 risposte

87

Se non sai se hai bisogno del codice lato server, probabilmente non *

* Avvertenza : il codice lato server è essenziale per la sicurezza quando si desidera controllare internamente l'accesso a contenuto, dati o funzionalità. (Non deve necessariamente essere il tuo server, vedi l'ultimo paragrafo.)

Chiediti quale problema risolverebbero le tecnologie lato server. Se non riesci a pensare a nessuno (e nel tuo caso, non posso neanche), allora non ne hai bisogno.

Tieni presente che molto più di quanto potresti pensare è possibile usando solo il codice lato client. Strutture JavaScript come AngularJS o ReactJS possono consentire l'integrazione con contenuti dinamici di terze parti tramite API utilizzando Ajax. (Ciò include l'aggancio in un'API in grado di gestire la propria sicurezza.)

    
risposta data 01.08.2016 - 03:36
fonte
56

Leggi i generatori di siti statici. Questi ti consentono di creare un sito in modo programmatico (utilizzando modelli, dati, ecc.) E non mediante HTML manuale. Il risultato è un insieme di HTML statico e CSS che non richiede alcun back-end.

link elenca e classifica un certo numero di tali generatori open source; esistono probabilmente anche offerte closed-source.

    
risposta data 01.08.2016 - 03:25
fonte
6

Puoi e utilizzare solo un sito statico se è sufficiente oppure utilizzare un statico generatore di siti . Perché? Maintainability . Il codice ha bug. Ogni poche settimane c'è un altro buco di sicurezza di WordPress trovato. Se si utilizza un CMS comune, sarà necessario correggerlo costantemente. Altrimenti il sito web dei tuoi amici conterrà presto pubblicità di droghe illegali, propaganda ISIS, malware installato sui computer dei visitatori o peggio. Anche se lo aggiusti regolarmente, potresti essere in ritardo, quindi devi controllare costantemente gli hack. Ci sono modi per proteggere questo CMS. Installa "plugin di sicurezza", configura un firewall di applicazioni Web come mod_security ecc. Tutto di più. Devono anche essere tenuti aggiornati. A volte le tue regole mod_security interrompono un plugin per WordPress, devi analizzarlo e correggerlo. Più lavoro.

Potresti pensare che nessuno vorrà hackerare quel sito. Ma per le falle di sicurezza comuni che si trovano nei comuni sistemi CMS, ci sono presto dei robot automatici che eseguono la scansione / ricerca sul Web e hackerizzano TUTTI i siti che utilizzano quel CMS. Vogliono solo diffondere i loro collegamenti / malware / propaganda.

Con un sito statico (creato manualmente o con un generatore), non hai questo problema.

Se implementi il tuo back-end, avrà anche buchi di sicurezza (nessuno è perfetto) ma molto probabilmente nessuno li sfrutterà per quel piccolo sito web. Ma cosa vuoi implementare? Se vuoi creare un editor in cui il tuo amico può cambiare lui stesso le date del tour, pensa a quanto tempo ci vorrà finché non sarà abbastanza facile da usare senza il tuo aiuto. Quante volte puoi semplicemente cambiare rapidamente le date per lui con quel budget in tempo?

A mio parere, troppe persone oggi usano solo sistemi CMS per ogni sito, perché l'HTML statico è "vecchio". Se non hai bisogno di nulla che non sia possibile con HTML5, usa il codice lato server. Ma se non ne hai bisogno, risparmi un sacco di tempo senza.

    
risposta data 03.08.2016 - 09:37
fonte
3

Devi solo eseguire la programmazione del backend quando ti serve.

Tuttavia, anche le funzioni di base come i moduli di posta elettronica richiedono solitamente una programmazione di backend di base. Se è solo un sito di visualizzazione allora sì, va bene.

    
risposta data 02.08.2016 - 04:04
fonte
2

Non necessariamente, ma ci sono alcuni problemi che potresti incontrare se rendi l'intero sito in formato HTML.

Molti siti hanno gli stessi elementi di menu, intestazione e piè di pagina su più pagine. Se semplicemente copi e incolla questi da una pagina all'altra, questo potrebbe diventare noioso e soggetto ad errori man mano che il sito si ingrandisce e devi continuare a fare cambiamenti in queste aree.

Nei giorni precedenti la programmazione lato server era così comune che un modo comune per risolvere questo problema era usare frame per incorporare queste aree in ogni pagina. Questo è caduto in disgrazia diversi anni fa, quindi non consiglio di farlo ora. Potresti scrivere semplicemente un semplice codice lato server per visualizzare questi elementi comuni su ogni pagina.

Sarei d'accordo con gli altri qui che hanno raccomandato l'uso di un CMS off-the-shelf.

    
risposta data 02.08.2016 - 19:08
fonte

Leggi altre domande sui tag