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

Stato
Discussione chiusa ad ulteriori risposte.

Cotrox

Nuovo Utente
104
3
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
4,577
1,571
CPU
AMD Ryzen 7 2700X | INTEL i5-6600k | INTEL i5-4460... altri
Dissipatore
wraith MAX | Arctic Freezer 11LP | stock
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | Acer 24" FHD | Benq 19" FHD
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
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
Reactions: Moffetta88

BullClown

Utente Èlite
1,791
805
CPU
Intel i5 8600K
Dissipatore
Noctua NH-L12S
Scheda Madre
Asus Rog Strix B360-G
Hard Disk
Crucial MX300 525GB
RAM
HyperX Predator RGB 16GB (2x8GB) 3200MHz CL16
Scheda Video
Zotac GeForce GTX 1060 3GB Mini
Monitor
Dell S2316H
Alimentatore
EVGA SuperNOVA 550 G2
Case
Phanteks Eclipse P400
Sistema Operativo
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,062
447
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
Reactions: Moffetta88 e cdtux

rctimelines

Utente Èlite
4,577
1,571
CPU
AMD Ryzen 7 2700X | INTEL i5-6600k | INTEL i5-4460... altri
Dissipatore
wraith MAX | Arctic Freezer 11LP | stock
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | Acer 24" FHD | Benq 19" FHD
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
Detto questo! Leggiti una guida php-mysql e fatti gli esercizi.. tutto ti sarà chiaro!

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

cdtux

Utente Èlite
1,718
756
CPU
I7 3770
Scheda Madre
Asrock Z77 Extreme 4
Hard Disk
Samsung 850 pro 250GB
RAM
Corsair Vengeance LP 16GB
Scheda Video
EVGA GTX670 SC
Monitor
Dell U2412M
Alimentatore
Corsair TX850M
Case
Corsair Graphite 760T
Sistema Operativo
Debian / Kali Linux / Win
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