Applicazioni web client server Flashcards
Cos’è un’applicazione client-server?
È un modello di architettura di rete in cui il client fornisce l’interfaccia utente, mentre il server fornisce risorse e servizi richiesti dal client.
Quali sono i principali linguaggi/metalinguaggi lato client?
HTML: Struttura le pagine web.
CSS: Definisce lo stile e il layout delle pagine.
JavaScript: Aggiunge interattività e dinamismo.
Quali sono i linguaggi lato server più comuni?
PHP (usato nel corso).
ASP, Python, Ruby, .NET, Node.js, Java (JSP).
Cosa sono i DBMS? Elenca alcuni esempi.
I Database Management Systems (DBMS) sono software per gestire database. Esempi:
MySQL
Oracle.
PostgreSQL.
Cos’è il modello LAMP?
LAMP è un’architettura per applicazioni web, composta da:
Linux: Sistema operativo.
Apache: Server HTTP.
MySQL: Database relazionale.
PHP: Linguaggio di scripting lato server.
Qual è il workflow di un’applicazione client-server in LAMP?
- Il browser invia una richiesta al server Apache.
- Apache elabora la richiesta e identifica i file PHP.
- PHP esegue il codice, incluse le query a MySQL.
- Il server restituisce una pagina HTML al client.
Perché il modello LAMP è popolare?
È open source e quindi economico.
Offre stabilità, flessibilità e scalabilità.
Permette di creare applicazioni web dinamiche.
Qual è il ruolo di Apache nel modello LAMP?
Riceve richieste dal client.
Gestisce i file PHP.
Invia risposte (HTML) al browser.
Quali sono i vantaggi di usare PHP in un’applicazione web?
È facile da imparare e ben documentato.
È integrato con MySQL per la gestione di database.
Consente di creare pagine web dinamiche.
Qual è il ruolo di MySQL in un’applicazione web?
È un DBMS utilizzato per:
Memorizzare e organizzare dati.
Rispondere alle query eseguite dal linguaggio lato server (es. PHP).
Cosa accade quando un browser richiede una pagina PHP?
Apache individua il file PHP.
Il codice PHP viene eseguito, incluse le query al database.
Viene generato un file HTML, inviato al browser.
Cos’è il client software?
È il software che funge da interfaccia per interagire con il server. Ad esempio, un browser web.
Qual è la differenza tra PHP e JavaScript?
PHP: Eseguito lato server, genera contenuti dinamici.
JavaScript: Eseguito lato client, gestisce interattività e dinamismo.
Perché usare un database come MySQL?
Gestisce grandi quantità di dati.
Supporta query complesse.
È veloce e scalabile.
Qual era il problema delle pagine web statiche degli anni ‘90?
Le pagine web statiche non potevano cambiare il contenuto senza intervento manuale. L’evoluzione di Internet ha portato alla necessità di contenuti dinamici personalizzati o estratti da database.
PHP cosa significa il suo nome originario?
Personal Home Page.
Come si apre e si chiude il codice PHP?
Il codice PHP si apre con < ?php e si chiude con ?>.
Tutto ciò che è compreso tra questi tag è PHP, il resto è restituito come semplice HTML.
Qual è la differenza tra echo e print in PHP?
Entrambi stampano a schermo del testo, ma echo è leggermente più veloce e non restituisce un valore, mentre print restituisce un valore (1) e può essere utilizzato in espressioni.
Come si dichiara una variabile in PHP?
Le variabili iniziano con $ e il valore viene assegnato con =.
Esempio: $variabile = “contenuto”;
Qual è la differenza tra stringhe dichiarate con virgolette doppie e singole?
Virgolette doppie (“): Consentono l’interpolazione di variabili.
Virgolette singole (‘): Considerano il contenuto come testo letterale.
Come si concatenano le stringhe in PHP?
Con il punto (.)
Quali sono gli operatori matematici principali in PHP?
+: Addizione
-: Sottrazione
*: Moltiplicazione
/: Divisione
%: Modulo (calcola il resto della divisione)
Come si incrementa o si decrementa una variabile numerica in PHP?
Incremento di 1: $variabile++;
Decremento di 1: $variabile–;
Qual è l’importanza delle parentesi nelle operazioni matematiche?
Le parentesi determinano la priorità delle operazioni.
(come nella matematica normale lol)
Come si integrano PHP e HTML?
PHP può essere inserito in una pagina HTML usando i tag <?php ?> e stampando i valori delle variabili con echo.
Quali sono i principali operatori logici in PHP?
==: Uguale
!=: Diverso
<: Minore
>: Maggiore
<=: Minore o Uguale
>=: Maggiore o Uguale
I nomi delle variabili in PHP sono case sensitive?
Sì, i nomi delle variabili distinguono tra maiuscole e minuscole. $Variabile e $variabile sono diverse.
Qual è il costrutto base per creare una condizione in PHP?
il costrutto base è if..else
if (condizione) {
// codice se condizione è vera
} else {
// codice se condizione è falsa
}
Come si scrive in PHP la frase “se piove resto a casa”?
$tempo = “piove”;
if ($tempo == “piove”) {
echo “resto a casa”;
}
Qual è la differenza tra = e == in PHP?
= è un operatore di assegnazione (assegna un valore a una variabile).
== è un operatore di confronto (verifica se due valori sono uguali).
Come si scrive in PHP la frase “se piove resto a casa, altrimenti vado al parco”?
$tempo = “sole”;
if ($tempo == “piove”) {
echo “resto a casa”;
} else {
echo “vado al parco”;
}
Come si crea una condizione nidificata in PHP?
Utilizzando un secondo if all’interno del primo.
$tempo = “piove”;
$temperatura = “freddo”;
if ($tempo == “piove”) {
if ($temperatura == “freddo”) {
echo “resto a casa”;
} else {
echo “vado al bar”;
}
} else {
echo “vado al parco”;
}
Cosa succede se la prima condizione di un if nidificato non è verificata?
La seconda condizione non viene nemmeno verificata.
Cosa fa il costrutto switch in PHP?
switch verifica il valore di un’espressione e esegue il codice associato al caso corrispondente.
switch ($variabile) {
case ‘valore1’:
// codice
break;
case ‘valore2’:
// codice
break;
default:
// codice
}
A cosa serve l’istruzione break in un switch?
Serve per terminare l’esecuzione del blocco case. Senza break, PHP continuerebbe a eseguire i blocchi successivi.
È obbligatoria la clausola default in un switch?
No, la clausola default è opzionale, ma è utile per definire un comportamento predefinito se nessuna condizione è soddisfatta.
Cosa sono i cicli in PHP?
Un ciclo consiste nella ripetizione di un comando o un blocco di codice per un dato numero di volte o finché una condizione è vera.
Qual è la sintassi di base di un ciclo for in PHP?
for (inizializzazione; condizione; incremento) {
// codice da eseguire
}
Quali sono i tre elementi presenti tra le parentesi tonde di un ciclo for?
Inizializzazione: viene eseguita una sola volta all’inizio del ciclo.
Condizione: viene valutata prima di ogni iterazione; se falsa, il ciclo termina.
Incremento/Decremento: viene eseguito al termine di ogni iterazione.
Come si scrive in PHP la tabellina del 3 usando un ciclo for?
for ($moltiplicatore = 1; $moltiplicatore <= 10; $moltiplicatore++) {
$risultato = 3 * $moltiplicatore;
echo “3 * “ . $moltiplicatore . “ = “ . $risultato . “<br></br>”;
}
Qual è il rischio di utilizzare i cicli in modo scorretto?
Si può creare un loop infinito, ovvero un ciclo che non termina mai, causando problemi al server.
Qual è la sintassi di un ciclo while in PHP?
while (condizione) {
// codice da eseguire finché la condizione è vera
}
Qual è la differenza principale tra for e while?
In un ciclo for, tutte le istruzioni di inizializzazione, condizione e incremento sono definite nella stessa riga.
In un ciclo while, solo la condizione è specificata, mentre inizializzazione e incremento devono essere gestiti separatamente.
Qual è la differenza principale tra while e do while?
In while, la condizione viene valutata prima dell’esecuzione del ciclo.
In do while, il codice viene eseguito almeno una volta, perché la condizione è valutata alla fine.
A cosa serve il ciclo foreach in PHP?
Serve per iterare su ogni elemento di un array.
Cosa è un array in PHP?
Un array è una “super-variabile” che può contenere più valori, ognuno dei quali è identificato da un indice.
Come si dichiara un array con indice numerico in PHP?
$amici = array(“Luca”, “Jacopo”, “Felice”, “Peppo”);
$amici = [“Luca”, “Jacopo”, “Felice”, “Peppo”];
Come si assegnano valori a un array specificando manualmente gli indici?
$amici[0] = “Luca”;
$amici[1] = “Jacopo”;
$amici[2] = “Felice”;
$amici[3] = “Peppo”;
Come accedere a un singolo elemento di un array?
echo $amici[1]; // Output: Jacopo
Cosa sono gli array associativi?
Sono array in cui gli indici sono stringhe anziché numeri.
es
$cliente[“nome”] = “Bill”;
$cliente[“cognome”] = “Gates”;
Come aggiungere un nuovo elemento in un array numerico?
$amici[] = “Daniele”; // Aggiunge “Daniele” come nuovo elemento in fondo all’array.
Come sostituire un elemento in un array?
Specificando l’indice e assegnando un nuovo valore:
$amici[2] = “Marcello”; // Sostituisce “Felice” con “Marcello”.
Come determinare la lunghezza di un array in PHP?
Utilizzando la funzione count():
$lunghezza = count($amici);
Come stampare tutti gli elementi di un array usando un ciclo for?
$amici = [“Luca”, “Jacopo”, “Felice”, “Peppo”];
$max_num = count($amici);
for ($i = 0; $i < $max_num; $i++) {
echo $amici[$i] . “<br></br>”;
}
Qual è la sintassi di base di un ciclo foreach per iterare su un array?
foreach ($array as $valore) {
// codice da eseguire
}
Come stampare tutti gli elementi di un array usando un ciclo foreach?
$amici = [“Luca”, “Jacopo”, “Felice”, “Peppo”];
foreach ($amici as $amico) {
echo $amico . “<br></br>”;
}
Qual è il vantaggio del ciclo foreach rispetto a for?
Il ciclo foreach non richiede di contare il numero di elementi nell’array, poiché PHP gestisce automaticamente la lunghezza.
Cosa sono le variabili GET e POST in PHP?
Sono variabili superglobali che permettono di recuperare dati inviati dagli utenti al server tramite URL (GET) o moduli HTML (POST).
Come vengono inviati i dati con il metodo GET?
I dati vengono passati nell’URL dopo un punto di domanda (?), organizzati in coppie nome=valore e separati da &.
es
http://www.sito.com/automobili.php?marca=fiat&modello=panda
Come si recuperano i valori di una QueryString in PHP?
Usando la variabile superglobale $_GET con il nome del parametro come chiave.
es
$marca = $_GET[‘marca’];
$modello = $_GET[‘modello’];
Qual è la differenza tra il metodo GET e POST?
GET: Invia i dati nell’URL (visibili all’utente).
POST: Invia i dati in modo nascosto attraverso la richiesta HTTP.
Quali sono i due attributi fondamentali del tag <form>?
method: Specifica il metodo di invio dei dati (GET o POST).
action: Specifica il percorso del file PHP che gestirà i dati inviati.
Come si recuperano i dati inviati con il metodo POST?
Usando la variabile superglobale $_POST con il nome del campo come chiave.
es
$nome_utente = $_POST[‘nome’];
echo “Ciao “ . $nome_utente;
Perché il metodo POST è considerato più sicuro rispetto al metodo GET?
Perché i dati inviati con POST non sono visibili nell’URL e non vengono memorizzati nella cronologia del browser.
Qual è una situazione tipica in cui si utilizza il metodo GET?
Quando si devono passare parametri semplici, come nelle ricerche o nei link cliccabili.
Qual è una situazione tipica in cui si utilizza il metodo POST?
Quando si inviano dati sensibili o form di grandi dimensioni (ad esempio login, registrazioni o ordini).
Cosa succede se un modulo <form> non specifica l’attributo method?
Il metodo predefinito è GET.
Come si gestiscono i dati inviati da un modulo con PHP?
Recupera i dati con $_GET o $_POST.
Elabora i dati (esempio: salvali, mostrali o processali).
es
<?php
$nome = $_POST[‘nome’];
echo “Benvenuto, “ . $nome;
?>
Che cos’è un database?
È un insieme di informazioni permanenti organizzate secondo una struttura definita da un modello dati che rappresenta una situazione reale (es. gestione magazzino, fatturazione, personale).
Come sono organizzate le informazioni nei file tradizionali rispetto a un database?
Nei file tradizionali, le informazioni sono organizzate in modo sequenziale. In un database, le informazioni sono relazionate tra loro secondo un modello dati.
Qual è la differenza tra un numero in un file e in un database?
In un file, è semplicemente un numero in una certa posizione. In un database, ha un ruolo definito dal modello dati (es. prezzo, identificativo univoco, ecc.).
Quali sono gli esempi di entità in un database?
Prezzo, prodotto, articolo, ordine, cliente. Queste entità sono specificate e correlate tra loro dal modello dati.
Quali requisiti deve soddisfare un database?
Ridondanza minima: Per evitare duplicazioni inutili e mantenere i dati consistenti.
Multiutenza: Accesso contemporaneo a un’unica versione dei dati con gestione dei diritti e prevenzione di conflitti.
Perché è importante ridurre la ridondanza in un database?
Per evitare spreco di risorse di memorizzazione e problemi di consistenza e affidabilità dei dati.
Come si evita che utenti diversi creino conflitti accedendo ai dati?
Attraverso tecniche che gestiscono i diritti di accesso e sincronizzano l’attività degli utenti.
Come sono strutturate le informazioni in un database relazionale?
Sotto forma di tabelle organizzate in righe (record) e colonne (campi). Ogni riga rappresenta un insieme di informazioni, e ogni colonna un tipo specifico di dato.
Cos’è una chiave primaria in un database?
È un identificatore univoco per ogni record in una tabella. Ad esempio, il codice di un prodotto o l’ID di un utente.
Cosa rappresenta una relazione tra tabelle?
Una connessione basata su una colonna comune. Ad esempio, la colonna “codice” nella tabella PRODOTTI e la colonna “cod_prodotto” nella tabella MAGAZZINO.
Quali sono le operazioni relazionali di base?
Join: Unione di record tra due tabelle.
Proiezione: Estrazione di specifiche colonne.
Selezione: Estrazione di specifici record.
Cos’è una query in SQL?
È un’operazione per invocare attività sul database, come ricercare, filtrare, inserire, modificare o eliminare dati.
Come si selezionano record ordinati per un campo in SQL?
Ascendente: SELECT * FROM anagrafica ORDER BY id;
Discendente: SELECT * FROM anagrafica ORDER BY id DESC;
Qual è la differenza tra > e >= in una query SQL?
> seleziona record con valori strettamente maggiori.
= seleziona record con valori maggiori o uguali.
Come si effettua una JOIN in SQL?
SELECT anagrafica.*
FROM anagrafica
INNER JOIN classe
ON anagrafica.id_classe = classe.id
WHERE classe.name=’1A’;
Come si inserisce un record in una tabella con SQL?
INSERT INTO anagrafica(nome, cognome)
VALUES (‘marco’, ‘biondi’);
Come si aggiorna un record in una tabella con SQL?
UPDATE anagrafica
SET nome = ‘marco’
WHERE id = 2;
Come si elimina un record da una tabella con SQL?
DELETE FROM anagrafica
WHERE id = 2;
Come si selezionano record che contengono una parte di stringa in un campo?
SELECT * FROM anagrafica
WHERE nome LIKE ‘%alessandro%’;
Qual è la differenza tra include() e require() in PHP?
include() genera un warning in caso di errore, mentre require() genera un fatal error bloccando l’esecuzione dello script.
Come si formatta una query string in PHP con il metodo GET?
La query string segue il punto interrogativo ? ed è composta da coppie nome/valore separate da = e collegate da &.
Cosa succede se una checkbox non viene selezionata con il metodo POST?
La variabile corrispondente non sarà definita in $_POST.
Qual è la porta principale usata dal protocollo FTP?
Porta 21 per il controllo; porta 20 è usata per i dati in modalità attiva.
Perché Telnet è considerato insicuro?
Perché non cripta le comunicazioni, rendendole vulnerabili ad attacchi.
A quale livello della pila OSI appartiene ICMP e a cosa serve?
Appartiene al livello 3 e trasmette informazioni di controllo e malfunzionamento. È usato da comandi come ping e traceroute.
Che cos’è il MAC Address?
È un identificativo univoco a 48 bit assegnato alle schede di rete, modificabile a livello software.
Come funziona Tor per garantire l’anonimato?
Usa crittografia a strati e instradamento onion per mascherare l’origine e la destinazione del traffico.
Come interagiscono i livelli del modello OSI quando si trasferisce un file con FTP?
Ogni livello incapsula i dati aggiungendo le proprie informazioni, con FTP a livello applicativo, TCP per il trasporto, IP per l’instradamento e ARP per il livello datalink.
Come funziona il protocollo DHCP?
Assegna dinamicamente indirizzi IP ai dispositivi tramite i messaggi Discover, Offer, Request e Acknowledge.
Qual è la relazione tra SMB e CIFS?
CIFS è una versione più recente del protocollo SMB per la condivisione di file e stampanti.
Qual è la differenza principale tra HTTP e HTTPS?
HTTPS cripta le comunicazioni utilizzando TLS/SSL, mentre HTTP no.
Come funziona il protocollo ARP?
Traduce indirizzi IP in MAC Address per comunicare nel livello datalink.
Cosa rappresenta la “cifra a cipolla” nel funzionamento di TOR?
Ogni nodo decifra uno strato del messaggio, conoscendo solo il nodo successivo.
Perché SFTP è più sicuro rispetto a FTP?
SFTP utilizza il protocollo SSH per crittografare i trasferimenti di file.
Qual è la differenza principale tra i protocolli DNS e DHCP?
DNS traduce i nomi di dominio in indirizzi IP, mentre DHCP assegna indirizzi IP ai dispositivi.
Quali protocolli operano a livello di trasporto nel modello OSI?
TCP e UDP.
Perché UDP è considerato un protocollo “senza connessione”?
Non garantisce consegna, ordine dei pacchetti o ritrasmissione.
Qual è lo standard più usato per criptare comunicazioni via web?
TLS/SSL.
Qual è la differenza principale tra uno switch e un router?
Uno switch connette dispositivi all’interno di una rete locale (LAN), mentre un router collega reti diverse.