DOMANDA Back-End, Front-End ... PHP,HTML,CSS...

Stato
Discussione chiusa ad ulteriori risposte.

Cotrox

Utente Attivo
229
7
Salve ragazzi, vi scrivo per ricevere qualche informazione riguardo la creazione e sopratutto riguardo la PUBBLICAZIONE di sitiweb.
Ho sempre saputo dell'esistenza di piattaforme che permettono di creare il proprio spazio web e gestirlo in modo semplice ma vorrei capire come fare ad essere un vero e proprio 'privato'.

Il fatto è che non ho mai trovato nessuno in grado di spiegarmi come funzionino nel pratico certe cose... le base diciamo che potrei anche averle.. ma non so proprio come funzionino certi processi...

Ecco le mie competenze:
Design: 10/10 -> Sono principalmente un Designer ma amo la programmazione.
Front-End: 9/10 -> Me la cavo davvero bene con HTML e CSS.
Back-End: .. qui le cose si complicano..
Conosco abbastanza di Java ma non sono un veterano.
Conosco solo la sintassi di PHP ma non ci ho mai lavorato.
Conosco bene Python.

Torniamo al post. Vorrei creare un mio sito web e fino a crearlo usando HTML e CSS ci sono. Se devo caricarlo su Altervista o roba free che sia simile ci sono.
Il problema è sul back end. Io non ho alcuna idea di come si faccia ad unire front e back end. Come si possa dare la possibilità a gli utenti di iscriversi e sul retro gestire le varie info dell'utente mediante database.
Come si possa gestire una vera e propria vendita online e dunque i pagamenti e tutto il resto.
Come si creino quei meccanismi 'automatici' di conferma iscrizione, iscrizione alle newsletter e tutto il resto.

Insomma.. sapete darmi delle dritte riguardo il back-end dei siti web?
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Io ti consiglierei di studiare bene PHP per creare un sito dinamico. Ciò ti sarà molto di aiuto per comprendere come può funzionare ciò che sta dietro ad un sito.

Potrai costruire le tue "maschere" per gestire i contenuti del database che costituiranno il back end. Gli stessi contenuti verranno utilizzati dalle pagine del sito per dare vita al front end.


Inviato dal mio Nexus 6P utilizzando Tapatalk
 
  • Mi piace
Reazioni: Moffetta88

BullClown

Utente Èlite
2,062
932
CPU
Intel i5 8600K
Dissipatore
Noctua NH-L12S
Scheda Madre
Asus Rog Strix B360-G
HDD
Crucial MX300 525GB
RAM
HyperX Predator RGB 16GB (2x8GB) 3200MHz CL16
GPU
Zotac GeForce GTX 1060 3GB Mini
Monitor
Dell S2316H
PSU
EVGA SuperNOVA 550 G2
Case
Phanteks Eclipse P400
OS
Windows 10
Se conosci bene python potrebbe interessarti Django
Personalmente non l'ho mai utilizzato, ma conosco gente che si è trovata molto bene. La documentazione è fatta molto bene e riesci a trovare parecchi tutorial su come utilizzarlo e collegarlo a database vari
 

pabloski

Utente Èlite
2,868
916
Vorrei creare un mio sito web e fino a crearlo usando HTML e CSS ci sono.

Dunque dovrebbe esserti chiaro che il web server ( il software, non la macchina fisica ) non fa altro che ricevere richieste contenenti degli URL e rispondere restituendo dei file presi dal disco. I file contenenti appunto HTML, CSS, Javascript, ecc...

In genere, chi fa la richiesta è un browser, ma qualsiasi programma in grado di usare il protocollo HTTP può farlo.


Il problema è sul back end. Io non ho alcuna idea di come si faccia ad unire front e back end.

Il backend non è altro che un insieme di script ( ma possono pure essere programma compilati in linguaggio macchina ) che vengono eseguiti dal server, in risposta a delle richieste http su specifici URL ( http://www.pippopluto.com/login.php per esempio ).

E' il web server ad essere settato in modo da richiamare l'interprete php ( nell'esempio ) ogni volta che vede una richiesta per quell'URL. E questo vale per tutti i tipi di backend. Che siano php, python, java, javascript/node, c#, ecc... Esistono plugin appositi per vari web server che si occupano di gestire quest'operazione. Ed esiste uno standard generale chiamato CGI https://en.wikipedia.org/wiki/Common_Gateway_Interface

Dietro le quinte avviene il ridirezionamento dell'I/O. Cioè lo standard input del programma viene dal web server. Lo standard output ( quello che normalmente verrebbe visualizzato nel terminale del tuo sistema opeativo ) viene inviato al web server, che poi lo filtra/modifica ( se necessario ) e lo invia al client.

Come si possa dare la possibilità a gli utenti di iscriversi e sul retro gestire le varie info dell'utente mediante database.
Come si possa gestire una vera e propria vendita online e dunque i pagamenti e tutto il resto.

Tenendo in considerazione quanto scritto, ovvero che il backend è composto da uno o più script/programmi, risulta abbastanza chiaro il come. Per esempio vuoi registrare un nuovo utente. Invii una richiesta POST al web server, con i dati di registrazione, su uno specifico URL. Lo script che risponde a quell'URL, ha la capacità di estrarre i dati dal POST ( che corrisponde ai form di HTML ) ed usarli. Come? In questo caso si connetterà ad un dbms sul server ( o su un altro server apposito magari ) e salverà questi dati in una tabella del db. Stesso discorso quando bisogna leggerli per usarli.

Manca però un pezzo in questo puzzle. Ovvero i cookie! Quei mostriciattoli finiti nel mirino delle organizzazioni per la privacy. Quando tu ti logghi ad un sito web, questo sito genera un cookie di autenticazione. Questo cookie è, in genere, una stringa cifrata e convertita in BASE64, contenente un token JWT, un oggetto standardizzato che contiene varie informazioni per consentire l'identificazione dell'utente durante la sessione.

Perchè è importante ricordare che HTTP è un protocollo stateless. Cioè, i vari messaggi scambiati tra web server e browser, non contengono di loro nessun riferimento a chi è la persona che sta operando in una data sessione. Hanno dovuto inventare quest'escamotage dei cookie, proprio per consentire di individuare tutti i messaggi di una sessione, come messaggi di un dato utente, che si è loggato in un certo momento e ha poi continuato ad usare il sito.

Un'alternativa che sta diventando popolare, sono i Websocket, che invece sono stateful.


Come si creino quei meccanismi 'automatici' di conferma iscrizione, iscrizione alle newsletter e tutto il resto.

In questo caso, c'è uno script sul server, che parte ad intervalli regolari, legge magari da un db, e decide a chi mandare cosa. Una newsletter richiede l'invio di una mail. Basta usare uno script/programma che supporta il protocollo SMTP. La conferma dell'iscrizione, richiede la generazione di un codice ( che dura un tot di ore o qualche giorno ), l'URL relativo http...blahblah.../?id=codice-generato...Lo script che si occupa dell'URL, estrae quel codice e verifica che si tratti di quello inviato per email. E ovviamente attiva l'account appena registrato dall'utente.

p.s. se conosci Python, hai tutto quello che ti serve nel framework Flask...chiaro che c'è una quantità sterminata di questi strumenti, per ogni linguaggio immaginabile. Pure C++ e Rust!
 
  • Mi piace
Reazioni: Moffetta88 e cdtux

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Detto questo! Leggiti una guida php-mysql e fatti gli esercizi.. tutto ti sarà chiaro!

Inviato dal mio Nexus 6P utilizzando Tapatalk
 
  • Mi piace
Reazioni: Moffetta88

cdtux

Utente Èlite
1,829
911
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
HDD
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
GPU
Gigabyte GTX1060 6GB
Monitor
Dell U2412M
PSU
Seasonic Focus Plus 650
Case
Corsair Graphite 760T
OS
Debian / Ubuntu
Per il python, invece che flask, consiglierei Django in quanto ti costringe a mantenere una "struttura" ben definita.
Flask ti da una libertà/versatilità che all'inizio non sei propriamente in grado di gestire.

Comincia prima di tutto vedere come funziona il web (client/server, request/response, metodi, query, ecc). Anche se non in modo approfondito ti aiuterà comunque a formare una buona base di partenza.
Poi, in base al linguaggio che conosci meglio (php o python), approfondisci il resto.

NB. All'inizio Concentrati sul creare applicazioni monolitiche e lascia le api/microservice (che vanno molto gettonate al giorno d'oggi) per quando sarai molto più esperto.

PS. Magari è una dimenticanza, ma se non conosci javascript, lato frontend non sei 9/10 ma infinitamente molto meno. Se vuoi lavorare nel campo del web è un linguaggio che devi necessariamente conoscere.
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili