Podcast
Questions and Answers
Qual è il ruolo di un server web nell'esecuzione di PHP?
Qual è il ruolo di un server web nell'esecuzione di PHP?
Un server web interpreta il codice PHP e genera una pagina HTML da inviare al client.
Perché è comune utilizzare un database con PHP?
Perché è comune utilizzare un database con PHP?
È comune perché PHP gestisce frequentemente dati dinamici che richiedono un database per l'acquisizione e la modifica.
Cosa fa un interprete PHP quando riceve un file PHP?
Cosa fa un interprete PHP quando riceve un file PHP?
L'interprete PHP esegue il codice contenuto nel file e genera una risposta HTML.
Quali componenti sono inclusi in un pacchetto come XAMPP?
Quali componenti sono inclusi in un pacchetto come XAMPP?
Signup and view all the answers
Come puoi eseguire un file PHP localmente?
Come puoi eseguire un file PHP localmente?
Signup and view all the answers
Qual è la struttura di un file PHP e quali tag sono usati?
Qual è la struttura di un file PHP e quali tag sono usati?
Signup and view all the answers
Perché un server web non invia direttamente file PHP al client?
Perché un server web non invia direttamente file PHP al client?
Signup and view all the answers
Quali sono i più diffusi server web per eseguire PHP?
Quali sono i più diffusi server web per eseguire PHP?
Signup and view all the answers
Quali operazioni può effettuare PHP con un database?
Quali operazioni può effettuare PHP con un database?
Signup and view all the answers
In cosa è simile la sintassi di PHP rispetto a JavaScript?
In cosa è simile la sintassi di PHP rispetto a JavaScript?
Signup and view all the answers
Qual è la principale caratteristica che distingue PHP da altri linguaggi di scripting?
Qual è la principale caratteristica che distingue PHP da altri linguaggi di scripting?
Signup and view all the answers
Cosa rende PHP un linguaggio open source vantaggioso per lo sviluppo?
Cosa rende PHP un linguaggio open source vantaggioso per lo sviluppo?
Signup and view all the answers
In che modo PHP può essere utilizzato senza un server web?
In che modo PHP può essere utilizzato senza un server web?
Signup and view all the answers
Quando è stata rilasciata la prima versione di PHP e qual è l'attuale versione supportata?
Quando è stata rilasciata la prima versione di PHP e qual è l'attuale versione supportata?
Signup and view all the answers
Qual è la durata del supporto per ciascuna versione di PHP e quali attività sono svolte in quegli anni?
Qual è la durata del supporto per ciascuna versione di PHP e quali attività sono svolte in quegli anni?
Signup and view all the answers
Perché le versioni di PHP precedenti alla 8 non dovrebbero essere utilizzate in produzione?
Perché le versioni di PHP precedenti alla 8 non dovrebbero essere utilizzate in produzione?
Signup and view all the answers
Quale versione di PHP non è mai stata ufficialmente rilasciata e perché?
Quale versione di PHP non è mai stata ufficialmente rilasciata e perché?
Signup and view all the answers
Quali sistemi operativi supportano PHP e cosa implica questa caratteristica?
Quali sistemi operativi supportano PHP e cosa implica questa caratteristica?
Signup and view all the answers
Come si distingue PHP nella formazione rispetto ad altri linguaggi più recenti?
Come si distingue PHP nella formazione rispetto ad altri linguaggi più recenti?
Signup and view all the answers
Qual è la relazione tra PHP e la comunità di sviluppatori riguardo alla documentazione?
Qual è la relazione tra PHP e la comunità di sviluppatori riguardo alla documentazione?
Signup and view all the answers
Qual è il simbolo utilizzato per dichiarare le variabili in PHP?
Qual è il simbolo utilizzato per dichiarare le variabili in PHP?
Signup and view all the answers
Cosa significa che PHP è case-sensitive in relazione alle variabili?
Cosa significa che PHP è case-sensitive in relazione alle variabili?
Signup and view all the answers
Quali sono i caratteri permessi per creare identificatori in PHP?
Quali sono i caratteri permessi per creare identificatori in PHP?
Signup and view all the answers
Qual è il valore predefinito assegnato a una variabile non inizializzata in PHP?
Qual è il valore predefinito assegnato a una variabile non inizializzata in PHP?
Signup and view all the answers
Che funzione si usa per verificare se una variabile è stata settata in PHP?
Che funzione si usa per verificare se una variabile è stata settata in PHP?
Signup and view all the answers
In PHP, quali sono i tipi di dati scalari supportati?
In PHP, quali sono i tipi di dati scalari supportati?
Signup and view all the answers
Cos'è la funzione unset() in PHP?
Cos'è la funzione unset() in PHP?
Signup and view all the answers
Quale tipo di caratteri è consigliato utilizzare per evitare problemi di compatibilità in PHP?
Quale tipo di caratteri è consigliato utilizzare per evitare problemi di compatibilità in PHP?
Signup and view all the answers
Qual è la principale differenza tra le versioni di PHP dalla 5 all'8?
Qual è la principale differenza tra le versioni di PHP dalla 5 all'8?
Signup and view all the answers
Quale simbolo può essere utilizzato per commenti su singola riga in PHP oltre a '//'?
Quale simbolo può essere utilizzato per commenti su singola riga in PHP oltre a '//'?
Signup and view all the answers
Qual è la differenza tra l'uso di singoli e doppi apici per le stringhe in PHP?
Qual è la differenza tra l'uso di singoli e doppi apici per le stringhe in PHP?
Signup and view all the answers
Cosa restituisce la funzione gettype() in PHP?
Cosa restituisce la funzione gettype() in PHP?
Signup and view all the answers
Come si può rappresentare un numero intero in base ottale in PHP?
Come si può rappresentare un numero intero in base ottale in PHP?
Signup and view all the answers
Cosa succede a un numero intero in caso di overflow in PHP?
Cosa succede a un numero intero in caso di overflow in PHP?
Signup and view all the answers
Quale funzione si può utilizzare per gestire gli errori di arrotondamento in PHP?
Quale funzione si può utilizzare per gestire gli errori di arrotondamento in PHP?
Signup and view all the answers
Cosa deve essere fatto per usare apici all'interno di una stringa con doppi apici?
Cosa deve essere fatto per usare apici all'interno di una stringa con doppi apici?
Signup and view all the answers
Cosa fa la funzione var_dump() in PHP?
Cosa fa la funzione var_dump() in PHP?
Signup and view all the answers
Qual è il formato di una stringa HEREDOC in PHP?
Qual è il formato di una stringa HEREDOC in PHP?
Signup and view all the answers
Come si definisce un numero binario in PHP?
Come si definisce un numero binario in PHP?
Signup and view all the answers
Qual è l'importanza della funzione is_int() in PHP?
Qual è l'importanza della funzione is_int() in PHP?
Signup and view all the answers
Qual è la differenza tra HEREDOC e NOWDOC in PHP?
Qual è la differenza tra HEREDOC e NOWDOC in PHP?
Signup and view all the answers
Come si escapano gli apici all'interno di una stringa racchiusa da doppi apici in PHP?
Come si escapano gli apici all'interno di una stringa racchiusa da doppi apici in PHP?
Signup and view all the answers
Cosa succede se si utilizza una variabile all'interno di una stringa racchiusa da singoli apici in PHP?
Cosa succede se si utilizza una variabile all'interno di una stringa racchiusa da singoli apici in PHP?
Signup and view all the answers
Cos'è una stringa HEREDOC e come si inizia?
Cos'è una stringa HEREDOC e come si inizia?
Signup and view all the answers
Perché è importante conoscere la differenza tra l'uso di singoli e doppi apici per le stringhe in PHP?
Perché è importante conoscere la differenza tra l'uso di singoli e doppi apici per le stringhe in PHP?
Signup and view all the answers
Qual è il simbolo utilizzato per creare variabili variabili in PHP?
Qual è il simbolo utilizzato per creare variabili variabili in PHP?
Signup and view all the answers
Come si definisce un array numerico in PHP?
Come si definisce un array numerico in PHP?
Signup and view all the answers
Qual è la funzione da utilizzare per trasformare un array in una stringa separata da un delimitatore?
Qual è la funzione da utilizzare per trasformare un array in una stringa separata da un delimitatore?
Signup and view all the answers
Quale funzione ordina un array associativo in base ai valori?
Quale funzione ordina un array associativo in base ai valori?
Signup and view all the answers
Cosa restituisce la funzione explode() in PHP?
Cosa restituisce la funzione explode() in PHP?
Signup and view all the answers
Come si aggiunge un elemento alla fine di un array in PHP?
Come si aggiunge un elemento alla fine di un array in PHP?
Signup and view all the answers
Qual è il risultato di un'operazione di overflow di un numero intero in PHP?
Qual è il risultato di un'operazione di overflow di un numero intero in PHP?
Signup and view all the answers
Qual è la sintassi per definire un array associativo in PHP?
Qual è la sintassi per definire un array associativo in PHP?
Signup and view all the answers
Qual è la funzione che ordina un array numerico in ordine decrescente?
Qual è la funzione che ordina un array numerico in ordine decrescente?
Signup and view all the answers
Cosa rappresenta il simbolo '$' in PHP?
Cosa rappresenta il simbolo '$' in PHP?
Signup and view all the answers
Qual è la differenza principale tra il metodo GET e il metodo POST nell'invio di un form?
Qual è la differenza principale tra il metodo GET e il metodo POST nell'invio di un form?
Signup and view all the answers
Come vengono rappresentati i caratteri speciali in una URL quando si utilizza il metodo GET?
Come vengono rappresentati i caratteri speciali in una URL quando si utilizza il metodo GET?
Signup and view all the answers
Cosa accade se nel valore di un campo di un form ci sono caratteri come '=' o '&'?
Cosa accade se nel valore di un campo di un form ci sono caratteri come '=' o '&'?
Signup and view all the answers
Quale simbolo viene utilizzato per rappresentare uno spazio in una stringa URL codificata?
Quale simbolo viene utilizzato per rappresentare uno spazio in una stringa URL codificata?
Signup and view all the answers
Qual è l'importanza della codifica dei caratteri in PHP quando si usano form?
Qual è l'importanza della codifica dei caratteri in PHP quando si usano form?
Signup and view all the answers
Quale file gestisce i dati inviati tramite un form utilizzando il metodo GET in PHP?
Quale file gestisce i dati inviati tramite un form utilizzando il metodo GET in PHP?
Signup and view all the answers
Cosa rappresenta la stringa %20 nei parametri URL?
Cosa rappresenta la stringa %20 nei parametri URL?
Signup and view all the answers
Perché si utilizza la codifica esadecimale per i caratteri speciali nelle URL?
Perché si utilizza la codifica esadecimale per i caratteri speciali nelle URL?
Signup and view all the answers
In che modo vengono separati i valori di più campi in una URL quando si utilizza il metodo GET?
In che modo vengono separati i valori di più campi in una URL quando si utilizza il metodo GET?
Signup and view all the answers
Come si comporta PHP quando non vengono codificati correttamente i dati in un form?
Come si comporta PHP quando non vengono codificati correttamente i dati in un form?
Signup and view all the answers
Come vengono codificati i caratteri speciali nello URI per il nome e cognome 'Marco Noè'?
Come vengono codificati i caratteri speciali nello URI per il nome e cognome 'Marco Noè'?
Signup and view all the answers
Qual è la differenza principale tra i metodi GET e POST in termini di invio di dati?
Qual è la differenza principale tra i metodi GET e POST in termini di invio di dati?
Signup and view all the answers
Quale intestazione HTTP è tipicamente presente nelle richieste POST per specificare il tipo di dati inviati?
Quale intestazione HTTP è tipicamente presente nelle richieste POST per specificare il tipo di dati inviati?
Signup and view all the answers
Cosa indica il formato 'multipart/form-data' nella codifica dei dati?
Cosa indica il formato 'multipart/form-data' nella codifica dei dati?
Signup and view all the answers
Com'è formata l'URI per una richiesta GET a insaula.php con i parametri NUM e Sede?
Com'è formata l'URI per una richiesta GET a insaula.php con i parametri NUM e Sede?
Signup and view all the answers
Qual è la codifica predefinita utilizzata per il metodo POST?
Qual è la codifica predefinita utilizzata per il metodo POST?
Signup and view all the answers
Che funzione svolgono gli array globali $_GET e $_POST in PHP?
Che funzione svolgono gli array globali $_GET e $_POST in PHP?
Signup and view all the answers
Come vengono rappresentati i caratteri non ASCII nelle richieste URI?
Come vengono rappresentati i caratteri non ASCII nelle richieste URI?
Signup and view all the answers
Quale vantaggio offre il metodo POST rispetto al metodo GET per l'invio di dati?
Quale vantaggio offre il metodo POST rispetto al metodo GET per l'invio di dati?
Signup and view all the answers
Quale valore di Content-Length potrebbe presentarsi in una richiesta POST?
Quale valore di Content-Length potrebbe presentarsi in una richiesta POST?
Signup and view all the answers
Qual è il rischio principale associato ai controlli solamente lato client nei form?
Qual è il rischio principale associato ai controlli solamente lato client nei form?
Signup and view all the answers
Perché è consigliato gestire l'input delle checkbox sul server in modo specifico?
Perché è consigliato gestire l'input delle checkbox sul server in modo specifico?
Signup and view all the answers
Qual è la differenza di gestione tra un campo di input di tipo radio e checkbox per il server?
Qual è la differenza di gestione tra un campo di input di tipo radio e checkbox per il server?
Signup and view all the answers
Perché è preferibile usare il metodo POST per l'upload di file rispetto al metodo GET?
Perché è preferibile usare il metodo POST per l'upload di file rispetto al metodo GET?
Signup and view all the answers
Cosa implica la codifica 'multipart/form-data' nella gestione dei file?
Cosa implica la codifica 'multipart/form-data' nella gestione dei file?
Signup and view all the answers
Qual è un potenziale problema quando si assume che un dato sia sempre presente nei form?
Qual è un potenziale problema quando si assume che un dato sia sempre presente nei form?
Signup and view all the answers
In che modo un controllo JavaScript sui dati influisce sulla sicurezza dei dati inviati?
In che modo un controllo JavaScript sui dati influisce sulla sicurezza dei dati inviati?
Signup and view all the answers
Qual è il ruolo della severità nel gestire gli errori di input tramite form?
Qual è il ruolo della severità nel gestire gli errori di input tramite form?
Signup and view all the answers
Perché i controlli di integrità dei dati sono essenziali nel contesto dei file upload?
Perché i controlli di integrità dei dati sono essenziali nel contesto dei file upload?
Signup and view all the answers
Qual è la differenza principale tra controlli lato client e controlli lato server?
Qual è la differenza principale tra controlli lato client e controlli lato server?
Signup and view all the answers
Qual è la funzione della riga vuota nella sintassi HTTP?
Qual è la funzione della riga vuota nella sintassi HTTP?
Signup and view all the answers
Cosa caratterizza la codifica multipart/form-data
rispetto a quella URL encoded
?
Cosa caratterizza la codifica multipart/form-data
rispetto a quella URL encoded
?
Signup and view all the answers
Qual è la funzione del boundary
in una richiesta multipart/form-data
?
Qual è la funzione del boundary
in una richiesta multipart/form-data
?
Signup and view all the answers
Cosa indica la presenza del --
dopo un boundary
finale nel multipart/form-data
?
Cosa indica la presenza del --
dopo un boundary
finale nel multipart/form-data
?
Signup and view all the answers
In che modo deve essere gestito il caso in cui un dato non venga inviato in un form?
In che modo deve essere gestito il caso in cui un dato non venga inviato in un form?
Signup and view all the answers
Quale informazione deve essere presente nell'header quando si utilizza multipart/form-data
?
Quale informazione deve essere presente nell'header quando si utilizza multipart/form-data
?
Signup and view all the answers
Che cosa rappresentano i campi Accept
e Referer
nell'header HTTP?
Che cosa rappresentano i campi Accept
e Referer
nell'header HTTP?
Signup and view all the answers
Cosa accade alla codifica dello spazio con multipart/form-data
?
Cosa accade alla codifica dello spazio con multipart/form-data
?
Signup and view all the answers
Quale valore rappresenta nella richiesta multipart/form-data
, un campo come NUM
con valore 12A
?
Quale valore rappresenta nella richiesta multipart/form-data
, un campo come NUM
con valore 12A
?
Signup and view all the answers
In cosa consiste la sequenza di caratteri detta boundary
in un form?
In cosa consiste la sequenza di caratteri detta boundary
in un form?
Signup and view all the answers
Qual è un vantaggio significativo della visibilità dei parametri nella query string del metodo GET?
Qual è un vantaggio significativo della visibilità dei parametri nella query string del metodo GET?
Signup and view all the answers
Qual è il motivo principale per cui si utilizza il metodo POST invece di GET per inviare dati di grandi dimensioni?
Qual è il motivo principale per cui si utilizza il metodo POST invece di GET per inviare dati di grandi dimensioni?
Signup and view all the answers
In che modo il metodo POST offre vantaggi in termini di privacy rispetto al metodo GET?
In che modo il metodo POST offre vantaggi in termini di privacy rispetto al metodo GET?
Signup and view all the answers
Qual è la funzione di un interprete, come PHP, nel contesto di una richiesta web dinamica?
Qual è la funzione di un interprete, come PHP, nel contesto di una richiesta web dinamica?
Signup and view all the answers
Qual è la caratteristica comune a molte tecnologie server-side nella generazione di pagine web dinamiche?
Qual è la caratteristica comune a molte tecnologie server-side nella generazione di pagine web dinamiche?
Signup and view all the answers
Perché, in determinate situazioni, è preferibile utilizzare un linguaggio lato server come Python o JavaScript rispetto a PHP?
Perché, in determinate situazioni, è preferibile utilizzare un linguaggio lato server come Python o JavaScript rispetto a PHP?
Signup and view all the answers
Qual è il principale limite del metodo GET in relazione alla quantità di dati che può gestire?
Qual è il principale limite del metodo GET in relazione alla quantità di dati che può gestire?
Signup and view all the answers
In cosa si distingue la risposta del server quando si utilizzano metodi come GET o POST?
In cosa si distingue la risposta del server quando si utilizzano metodi come GET o POST?
Signup and view all the answers
Qual è l'importanza della compatibilità con diversi sistemi operativi per PHP?
Qual è l'importanza della compatibilità con diversi sistemi operativi per PHP?
Signup and view all the answers
Come può un interprete come PHP interagire con un database durante l'elaborazione di una richiesta?
Come può un interprete come PHP interagire con un database durante l'elaborazione di una richiesta?
Signup and view all the answers
Qual è l'effetto di trasmettere un file su una dimensione notevolmente aumentata?
Qual è l'effetto di trasmettere un file su una dimensione notevolmente aumentata?
Signup and view all the answers
Che cosa permette il metodo multipart nel contesto della trasmissione di file?
Che cosa permette il metodo multipart nel contesto della trasmissione di file?
Signup and view all the answers
Qual è la funzione del boundary nel formato multipart MIME?
Qual è la funzione del boundary nel formato multipart MIME?
Signup and view all the answers
Quali vantaggi offre il metodo GET rispetto al metodo POST?
Quali vantaggi offre il metodo GET rispetto al metodo POST?
Signup and view all the answers
In quali situazioni è obbligatorio utilizzare il metodo POST?
In quali situazioni è obbligatorio utilizzare il metodo POST?
Signup and view all the answers
Come è strutturata una richiesta multipart con un file e controlli di tipo testo?
Come è strutturata una richiesta multipart con un file e controlli di tipo testo?
Signup and view all the answers
Quali informazioni specifica il controllo file nella richiesta multipart?
Quali informazioni specifica il controllo file nella richiesta multipart?
Signup and view all the answers
Perché è importante la scelta tra i metodi GET e POST nel trasferimento di dati?
Perché è importante la scelta tra i metodi GET e POST nel trasferimento di dati?
Signup and view all the answers
Cosa rappresenta il valore '3' nel controllo di tipo testo chiamato numeroCopie?
Cosa rappresenta il valore '3' nel controllo di tipo testo chiamato numeroCopie?
Signup and view all the answers
Qual è la sintassi per terminare un messaggio multipart?
Qual è la sintassi per terminare un messaggio multipart?
Signup and view all the answers
Qual è il motivo principale per cui si utilizza la codifica multipart quando si trasmette un file?
Qual è il motivo principale per cui si utilizza la codifica multipart quando si trasmette un file?
Signup and view all the answers
Cosa rappresenta il controllo 'numeroCopie' in un form multipart?
Cosa rappresenta il controllo 'numeroCopie' in un form multipart?
Signup and view all the answers
Qual è la differenza principale tra i metodi GET e POST nel contesto della trasmissione di file?
Qual è la differenza principale tra i metodi GET e POST nel contesto della trasmissione di file?
Signup and view all the answers
Che ruolo gioca il boundary in una richiesta multipart?
Che ruolo gioca il boundary in una richiesta multipart?
Signup and view all the answers
Perché a volte è vantaggioso utilizzare il metodo GET nei form?
Perché a volte è vantaggioso utilizzare il metodo GET nei form?
Signup and view all the answers
Cosa accade se si tenta di trasmettere un file di dimensioni notevoli senza multipart?
Cosa accade se si tenta di trasmettere un file di dimensioni notevoli senza multipart?
Signup and view all the answers
Qual è la rappresentazione del contenuto del file in un messaggio HTTP multipart?
Qual è la rappresentazione del contenuto del file in un messaggio HTTP multipart?
Signup and view all the answers
Qual è uno degli svantaggi relativi al metodo GET?
Qual è uno degli svantaggi relativi al metodo GET?
Signup and view all the answers
Cosa indica la conclusione di una parte in un messaggio multipart?
Cosa indica la conclusione di una parte in un messaggio multipart?
Signup and view all the answers
Qual è il principale limite del metodo GET in termini di quantità di dati?
Qual è il principale limite del metodo GET in termini di quantità di dati?
Signup and view all the answers
Cosa si intende per 'file di piccole dimensioni' nel contesto della trasmissione?
Cosa si intende per 'file di piccole dimensioni' nel contesto della trasmissione?
Signup and view all the answers
In quali situazioni è preferibile utilizzare il metodo POST rispetto a GET?
In quali situazioni è preferibile utilizzare il metodo POST rispetto a GET?
Signup and view all the answers
Qual è la caratteristica distintiva del web dinamico rispetto a quello statico?
Qual è la caratteristica distintiva del web dinamico rispetto a quello statico?
Signup and view all the answers
Quali tecnologie di scripting server-side sono comunemente utilizzate insieme a PHP?
Quali tecnologie di scripting server-side sono comunemente utilizzate insieme a PHP?
Signup and view all the answers
Cosa suggerisce l'utilizzo di framework e librerie nello sviluppo web?
Cosa suggerisce l'utilizzo di framework e librerie nello sviluppo web?
Signup and view all the answers
Qual è uno dei principali svantaggi del web dinamico riguardo al caching?
Qual è uno dei principali svantaggi del web dinamico riguardo al caching?
Signup and view all the answers
Quale messaggio HTTP indica una risorsa non trovata e come viene restituito tramite PHP?
Quale messaggio HTTP indica una risorsa non trovata e come viene restituito tramite PHP?
Signup and view all the answers
Per quale motivo l'approccio CGI è considerato superato nel contesto attuale dello sviluppo web?
Per quale motivo l'approccio CGI è considerato superato nel contesto attuale dello sviluppo web?
Signup and view all the answers
Qual è il ruolo dell’header HTTP Content-Type in un’applicazione PHP?
Qual è il ruolo dell’header HTTP Content-Type in un’applicazione PHP?
Signup and view all the answers
Che tipo di operazioni complesse può eseguire un server nel contesto del web dinamico?
Che tipo di operazioni complesse può eseguire un server nel contesto del web dinamico?
Signup and view all the answers
Qual è la funzione del ciclo foreach in PHP quando si lavora con gli array associativi?
Qual è la funzione del ciclo foreach in PHP quando si lavora con gli array associativi?
Signup and view all the answers
Come si accede a un valore in un array associativo in PHP?
Come si accede a un valore in un array associativo in PHP?
Signup and view all the answers
Cosa fa il ciclo for nel contesto del codice fornito?
Cosa fa il ciclo for nel contesto del codice fornito?
Signup and view all the answers
Qual è la differenza tra l'utilizzo di foreach e un ciclo for tradizionale in PHP?
Qual è la differenza tra l'utilizzo di foreach e un ciclo for tradizionale in PHP?
Signup and view all the answers
Come si possono stampare sia chiavi che valori di un array associativo utilizzando foreach?
Come si possono stampare sia chiavi che valori di un array associativo utilizzando foreach?
Signup and view all the answers
In quale situazione è comune utilizzare gli array associativi in PHP?
In quale situazione è comune utilizzare gli array associativi in PHP?
Signup and view all the answers
Cosa rappresenta 'giallo' e 'yellow' nell'esempio di vocabolario in PHP?
Cosa rappresenta 'giallo' e 'yellow' nell'esempio di vocabolario in PHP?
Signup and view all the answers
Qual è l'importanza della sintassi as chiave => valore all'interno di foreach?
Qual è l'importanza della sintassi as chiave => valore all'interno di foreach?
Signup and view all the answers
Cosa si intende per 'gestione implicita' degli indici nel ciclo foreach?
Cosa si intende per 'gestione implicita' degli indici nel ciclo foreach?
Signup and view all the answers
Cosa stamperebbe il ciclo foreach nel caso di un array contenente 'test1' a 'test10'?
Cosa stamperebbe il ciclo foreach nel caso di un array contenente 'test1' a 'test10'?
Signup and view all the answers
Qual è la differenza tra l'uso della funzione count()
su un array monodimensionale rispetto a un array multidimensionale?
Qual è la differenza tra l'uso della funzione count()
su un array monodimensionale rispetto a un array multidimensionale?
Signup and view all the answers
Perché è consigliato calcolare la lunghezza di un array una sola volta in un ciclo for
invece di farlo ad ogni iterazione?
Perché è consigliato calcolare la lunghezza di un array una sola volta in un ciclo for
invece di farlo ad ogni iterazione?
Signup and view all the answers
Quali funzioni vengono utilizzate per manipolare l'indice di un array in PHP e quali sono le loro funzioni principali?
Quali funzioni vengono utilizzate per manipolare l'indice di un array in PHP e quali sono le loro funzioni principali?
Signup and view all the answers
Cosa succede se si utilizza un ciclo while
con key()
per scorrere un array fino a quando restituisce null
?
Cosa succede se si utilizza un ciclo while
con key()
per scorrere un array fino a quando restituisce null
?
Signup and view all the answers
Cosa rappresentano le chiavi e i valori in un array associativo e come vengono stampati usando printf
?
Cosa rappresentano le chiavi e i valori in un array associativo e come vengono stampati usando printf
?
Signup and view all the answers
Quale vantaggio offre la funzione each()
e perché è stata deprecata a partire da PHP 8.0?
Quale vantaggio offre la funzione each()
e perché è stata deprecata a partire da PHP 8.0?
Signup and view all the answers
Come si può stampare un array in ordine inverso utilizzando le funzioni appropriate in PHP?
Come si può stampare un array in ordine inverso utilizzando le funzioni appropriate in PHP?
Signup and view all the answers
Qual è l'importanza di racchiudere variabili complesse tra parentesi graffe in PHP durante la stampa?
Qual è l'importanza di racchiudere variabili complesse tra parentesi graffe in PHP durante la stampa?
Signup and view all the answers
Quali sono le implicazioni di una struttura ciclica nella leggibilità e nell'efficienza del codice?
Quali sono le implicazioni di una struttura ciclica nella leggibilità e nell'efficienza del codice?
Signup and view all the answers
Come possiamo utilizzare la funzione printf
per visualizzare i valori di un array associativo in modo formattato?
Come possiamo utilizzare la funzione printf
per visualizzare i valori di un array associativo in modo formattato?
Signup and view all the answers
Perché è fondamentale la sanitizzazione dell'input in un'applicazione web?
Perché è fondamentale la sanitizzazione dell'input in un'applicazione web?
Signup and view all the answers
Qual è il risultato della funzione trim()
su una stringa con spazi iniziali e finali?
Qual è il risultato della funzione trim()
su una stringa con spazi iniziali e finali?
Signup and view all the answers
Quali caratteri potrebbero causare problemi negli input degli utenti per i nomi di file?
Quali caratteri potrebbero causare problemi negli input degli utenti per i nomi di file?
Signup and view all the answers
Qual è un approccio comune per evitare problemi di sanitizzazione degli input?
Qual è un approccio comune per evitare problemi di sanitizzazione degli input?
Signup and view all the answers
Come può un input con uno spazio inaspettato influenzare l'esecuzione di un comando in un sistema operativo?
Come può un input con uno spazio inaspettato influenzare l'esecuzione di un comando in un sistema operativo?
Signup and view all the answers
Che ruolo svolge la funzione trim()
nel migliorare la robustezza del codice?
Che ruolo svolge la funzione trim()
nel migliorare la robustezza del codice?
Signup and view all the answers
Qual è l'importanza di avere controllo sugli input ricevuti dagli utenti?
Qual è l'importanza di avere controllo sugli input ricevuti dagli utenti?
Signup and view all the answers
In quali modi possono essere sanitizzati gli input in un'applicazione PHP?
In quali modi possono essere sanitizzati gli input in un'applicazione PHP?
Signup and view all the answers
Quali sono i rischi associati a input non sanitizzati in un'applicazione web?
Quali sono i rischi associati a input non sanitizzati in un'applicazione web?
Signup and view all the answers
Cosa succede se un nome di file contiene spazi e viene processato?
Cosa succede se un nome di file contiene spazi e viene processato?
Signup and view all the answers
Quali sono i principali casi in cui una variabile è considerata vuota in PHP?
Quali sono i principali casi in cui una variabile è considerata vuota in PHP?
Signup and view all the answers
Qual è la funzione di FILTER_VALIDATE_EMAIL in PHP?
Qual è la funzione di FILTER_VALIDATE_EMAIL in PHP?
Signup and view all the answers
Cosa rimuove la funzione FILTER_SANITIZE_EMAIL?
Cosa rimuove la funzione FILTER_SANITIZE_EMAIL?
Signup and view all the answers
In quale caso si utilizza FILTER_NULL_ON_FAILURE?
In quale caso si utilizza FILTER_NULL_ON_FAILURE?
Signup and view all the answers
Cosa verifica FILTER_VALIDATE_IP in PHP?
Cosa verifica FILTER_VALIDATE_IP in PHP?
Signup and view all the answers
Che ruolo svolge FILTER_VALIDATE_BOOLEAN in PHP?
Che ruolo svolge FILTER_VALIDATE_BOOLEAN in PHP?
Signup and view all the answers
Qual è l'importanza di utilizzare espressioni regolari con FILTER_VALIDATE_REGEXP?
Qual è l'importanza di utilizzare espressioni regolari con FILTER_VALIDATE_REGEXP?
Signup and view all the answers
Quale filtro utilizzeresti per validare un URL in PHP?
Quale filtro utilizzeresti per validare un URL in PHP?
Signup and view all the answers
Cosa restituisce FILTER_VALIDATE_FLOAT se il valore non è valido?
Cosa restituisce FILTER_VALIDATE_FLOAT se il valore non è valido?
Signup and view all the answers
Come viene gestita la validazione degli interi con FILTER_VALIDATE_INT?
Come viene gestita la validazione degli interi con FILTER_VALIDATE_INT?
Signup and view all the answers
Quale problema si presenta fino alla versione 5.4.11 di PHP riguardo ai valori +0 e -0 nel contesto dei float?
Quale problema si presenta fino alla versione 5.4.11 di PHP riguardo ai valori +0 e -0 nel contesto dei float?
Signup and view all the answers
Come può filter_var essere utilizzato per validare un'email?
Come può filter_var essere utilizzato per validare un'email?
Signup and view all the answers
In che modo viene effettuato il controllo sulla variabile 'cognome' in un array in PHP?
In che modo viene effettuato il controllo sulla variabile 'cognome' in un array in PHP?
Signup and view all the answers
Qual è l'importanza del filtro FILTER_VALIDATE_INT con le opzioni min_range e max_range?
Qual è l'importanza del filtro FILTER_VALIDATE_INT con le opzioni min_range e max_range?
Signup and view all the answers
Quale funzione PHP è utilizzata per controllare se una variabile è valida o meno?
Quale funzione PHP è utilizzata per controllare se una variabile è valida o meno?
Signup and view all the answers
Come si definisce un'opzione per limitare l'età a un certo intervallo in PHP?
Come si definisce un'opzione per limitare l'età a un certo intervallo in PHP?
Signup and view all the answers
Quale valore viene assegnato se la variabile 'email' non è presente in $_GET?
Quale valore viene assegnato se la variabile 'email' non è presente in $_GET?
Signup and view all the answers
Cosa restituisce l'uso di filter_var con FILTER_VALIDATE_EMAIL per un'email non valida?
Cosa restituisce l'uso di filter_var con FILTER_VALIDATE_EMAIL per un'email non valida?
Signup and view all the answers
Che vantaggio offre la possibilità di passare flag alle funzioni di filtraggio in PHP?
Che vantaggio offre la possibilità di passare flag alle funzioni di filtraggio in PHP?
Signup and view all the answers
Come viene gestita la variabile 'age' per assicurare che rientri in un preciso intervallo?
Come viene gestita la variabile 'age' per assicurare che rientri in un preciso intervallo?
Signup and view all the answers
Qual è la differenza principale tra filter_var() e filter_input() in PHP?
Qual è la differenza principale tra filter_var() e filter_input() in PHP?
Signup and view all the answers
Quando si dovrebbe utilizzare filter_var_array() rispetto a filter_var()?
Quando si dovrebbe utilizzare filter_var_array() rispetto a filter_var()?
Signup and view all the answers
Quale funzione si utilizza per ottenere l'elenco dei filtri disponibili in PHP?
Quale funzione si utilizza per ottenere l'elenco dei filtri disponibili in PHP?
Signup and view all the answers
Qual è l'importanza della funzione trim() quando si gestisce un indirizzo email da $_GET?
Qual è l'importanza della funzione trim() quando si gestisce un indirizzo email da $_GET?
Signup and view all the answers
Come si definiscono i parametri minimi e massimi per validare un numero intero in PHP?
Come si definiscono i parametri minimi e massimi per validare un numero intero in PHP?
Signup and view all the answers
Che valore restituisce filter_var() quando l'input non è valido?
Che valore restituisce filter_var() quando l'input non è valido?
Signup and view all the answers
Cosa controlla la funzione FILTER_VALIDATE_EMAIL in PHP?
Cosa controlla la funzione FILTER_VALIDATE_EMAIL in PHP?
Signup and view all the answers
Qual è il risultato di filter_input() se la variabile di input non è impostata?
Qual è il risultato di filter_input() se la variabile di input non è impostata?
Signup and view all the answers
Quale filtro sarebbe appropriato per assicurarsi che un'età rientri in un dato intervallo in PHP?
Quale filtro sarebbe appropriato per assicurarsi che un'età rientri in un dato intervallo in PHP?
Signup and view all the answers
Perché è importante validare gli input ricevuti da $_POST e $_GET?
Perché è importante validare gli input ricevuti da $_POST e $_GET?
Signup and view all the answers
Qual è la funzione di preg_match() in PHP?
Qual è la funzione di preg_match() in PHP?
Signup and view all the answers
Cosa indicano i simboli ^ e $ nelle espressioni regolari in PHP?
Cosa indicano i simboli ^ e $ nelle espressioni regolari in PHP?
Signup and view all the answers
Come funziona la funzione preg_replace() in PHP?
Come funziona la funzione preg_replace() in PHP?
Signup and view all the answers
Qual è lo scopo dell'espressione regolare utilizzata in preg_match
per validare la password?
Qual è lo scopo dell'espressione regolare utilizzata in preg_match
per validare la password?
Signup and view all the answers
Qual è la differenza tra preg_grep() e preg_match() in PHP?
Qual è la differenza tra preg_grep() e preg_match() in PHP?
Signup and view all the answers
Come viene gestita la differenza tra un match trovato e nessun match in preg_match
?
Come viene gestita la differenza tra un match trovato e nessun match in preg_match
?
Signup and view all the answers
Cosa significa il flag PREG_OFFSET_CAPTURE
in preg_match
?
Cosa significa il flag PREG_OFFSET_CAPTURE
in preg_match
?
Signup and view all the answers
Cosa fa la funzione preg_last_error() in PHP?
Cosa fa la funzione preg_last_error() in PHP?
Signup and view all the answers
Che funzione hanno le parentesi quadre [] nelle espressioni regolari in PHP?
Che funzione hanno le parentesi quadre [] nelle espressioni regolari in PHP?
Signup and view all the answers
Qual è il formato richiesto per la data nella validazione tramite preg_match
?
Qual è il formato richiesto per la data nella validazione tramite preg_match
?
Signup and view all the answers
Come si rappresentano le ripetizioni nelle espressioni regolari in PHP?
Come si rappresentano le ripetizioni nelle espressioni regolari in PHP?
Signup and view all the answers
Qual è il ruolo delle parentesi tonde nell'espressione regolare per la data?
Qual è il ruolo delle parentesi tonde nell'espressione regolare per la data?
Signup and view all the answers
In che modo preg_match
restituisce le informazioni sui match quando si utilizzano le parentesi per catturare?
In che modo preg_match
restituisce le informazioni sui match quando si utilizzano le parentesi per catturare?
Signup and view all the answers
Cosa indica un flag come 'i' nelle espressioni regolari in PHP?
Cosa indica un flag come 'i' nelle espressioni regolari in PHP?
Signup and view all the answers
Quali sono i principali utilizzi delle espressioni regolari in PHP?
Quali sono i principali utilizzi delle espressioni regolari in PHP?
Signup and view all the answers
Cosa restituisce preg_match
quando non viene trovata alcuna corrispondenza?
Cosa restituisce preg_match
quando non viene trovata alcuna corrispondenza?
Signup and view all the answers
Qual è la sintassi per utilizzare preg_split() in PHP?
Qual è la sintassi per utilizzare preg_split() in PHP?
Signup and view all the answers
Perché è importante considerare le maiuscole e minuscole nell'espressione regolare /^ciao/i
?
Perché è importante considerare le maiuscole e minuscole nell'espressione regolare /^ciao/i
?
Signup and view all the answers
Come verificare se una stringa inizia con 'ciao' utilizzando preg_match
?
Come verificare se una stringa inizia con 'ciao' utilizzando preg_match
?
Signup and view all the answers
Quale sarebbe un esempio di una password non valida secondo il pattern utilizzato?
Quale sarebbe un esempio di una password non valida secondo il pattern utilizzato?
Signup and view all the answers
Qual è la differenza principale tra client e server in un'architettura client-server?
Qual è la differenza principale tra client e server in un'architettura client-server?
Signup and view all the answers
Cosa rappresenta l'header in un'unità di dato HTTP?
Cosa rappresenta l'header in un'unità di dato HTTP?
Signup and view all the answers
In quale formato può essere trasmesso il body di un'unità di dato HTTP se il destinatario è un umano?
In quale formato può essere trasmesso il body di un'unità di dato HTTP se il destinatario è un umano?
Signup and view all the answers
Che cosa permette di gestire il tipo MIME nelle trasmissioni HTTP?
Che cosa permette di gestire il tipo MIME nelle trasmissioni HTTP?
Signup and view all the answers
Quale aspetto è emerso come fondamentale per il miglioramento delle trasmissioni HTTP nel tempo?
Quale aspetto è emerso come fondamentale per il miglioramento delle trasmissioni HTTP nel tempo?
Signup and view all the answers
Come è strutturato un'unità di dato HTTP?
Come è strutturato un'unità di dato HTTP?
Signup and view all the answers
Qual è uno degli obiettivi principali che gli sviluppatori di HTTP si sono posti?
Qual è uno degli obiettivi principali che gli sviluppatori di HTTP si sono posti?
Signup and view all the answers
Cosa implica la mediazione di un browser nel paradigma client-server?
Cosa implica la mediazione di un browser nel paradigma client-server?
Signup and view all the answers
Qual è il problema principale legato alle richieste HTTP/1.0 per una pagina web complessa?
Qual è il problema principale legato alle richieste HTTP/1.0 per una pagina web complessa?
Signup and view all the answers
Cosa rappresenta lo schema in una URL e qual è il più comune?
Cosa rappresenta lo schema in una URL e qual è il più comune?
Signup and view all the answers
Come influenza il protocollo HTTP/1.1 la gestione delle connessioni rispetto a HTTP/1.0?
Come influenza il protocollo HTTP/1.1 la gestione delle connessioni rispetto a HTTP/1.0?
Signup and view all the answers
Nel contesto di una URL, cosa indica l'host?
Nel contesto di una URL, cosa indica l'host?
Signup and view all the answers
Qual è l'effetto dell'overhead delle connessioni TCP nelle pagine web con molti elementi?
Qual è l'effetto dell'overhead delle connessioni TCP nelle pagine web con molti elementi?
Signup and view all the answers
In quali situazioni il protocollo 'file' viene utilizzato nelle URL?
In quali situazioni il protocollo 'file' viene utilizzato nelle URL?
Signup and view all the answers
Qual è la sintassi corretta di una URL e quali sono le sue componenti principali?
Qual è la sintassi corretta di una URL e quali sono le sue componenti principali?
Signup and view all the answers
Come si differenziano le richieste per ciascuna risorsa in HTTP/1.0?
Come si differenziano le richieste per ciascuna risorsa in HTTP/1.0?
Signup and view all the answers
Qual è il vantaggio principale del caching nei protocolli HTTP?
Qual è il vantaggio principale del caching nei protocolli HTTP?
Signup and view all the answers
Cosa rappresenta la S in HTTPS?
Cosa rappresenta la S in HTTPS?
Signup and view all the answers
Qual è la differenza principale tra HTTP/2 e HTTP/3?
Qual è la differenza principale tra HTTP/2 e HTTP/3?
Signup and view all the answers
Perché HTTP 0.9 non ha avuto larga diffusione?
Perché HTTP 0.9 non ha avuto larga diffusione?
Signup and view all the answers
Qual è l'importanza degli RFC nel contesto di Internet?
Qual è l'importanza degli RFC nel contesto di Internet?
Signup and view all the answers
Come funziona il meccanismo dei cookie in HTTP?
Come funziona il meccanismo dei cookie in HTTP?
Signup and view all the answers
Quali migliorie ha introdotto HTTP/1.1 rispetto a HTTP/1.0?
Quali migliorie ha introdotto HTTP/1.1 rispetto a HTTP/1.0?
Signup and view all the answers
Per quali motivi HTTP è considerato stateless?
Per quali motivi HTTP è considerato stateless?
Signup and view all the answers
Qual è il ruolo del protocollo TLS in HTTPS?
Qual è il ruolo del protocollo TLS in HTTPS?
Signup and view all the answers
Che vantaggi presenta l'uso di UDP nel protocollo QUIC?
Che vantaggi presenta l'uso di UDP nel protocollo QUIC?
Signup and view all the answers
Quando è appropriato utilizzare un protocollo con controlli di affidabilità rigorosi?
Quando è appropriato utilizzare un protocollo con controlli di affidabilità rigorosi?
Signup and view all the answers
In che modo HTTP/3 è stato standardizzato e quali sono le sue caratteristiche?
In che modo HTTP/3 è stato standardizzato e quali sono le sue caratteristiche?
Signup and view all the answers
Quali sono le conseguenze della flessibilità di HTTP 1.0 rispetto a 1.1?
Quali sono le conseguenze della flessibilità di HTTP 1.0 rispetto a 1.1?
Signup and view all the answers
Cosa implica la codifica dei dati a 8-bit in HTTP 1.0?
Cosa implica la codifica dei dati a 8-bit in HTTP 1.0?
Signup and view all the answers
Qual è la funzione della porta in un URL e quale porta predefinita utilizza HTTP?
Qual è la funzione della porta in un URL e quale porta predefinita utilizza HTTP?
Signup and view all the answers
Cosa avviene se si prova a collegarsi a una porta non in ascolto su un server?
Cosa avviene se si prova a collegarsi a una porta non in ascolto su un server?
Signup and view all the answers
Come si differenziano le porte predefinite per HTTP e HTTPS?
Come si differenziano le porte predefinite per HTTP e HTTPS?
Signup and view all the answers
Qual è la funzione del path in un URL?
Qual è la funzione del path in un URL?
Signup and view all the answers
Cosa è un'ancora in un URL e come viene utilizzata?
Cosa è un'ancora in un URL e come viene utilizzata?
Signup and view all the answers
Qual è la differenza tra file PHP e HTML nel percorso di un URL?
Qual è la differenza tra file PHP e HTML nel percorso di un URL?
Signup and view all the answers
In che modo un browser gestisce il collegamento a una porta predefinita?
In che modo un browser gestisce il collegamento a una porta predefinita?
Signup and view all the answers
Cosa significa che l'accesso a una risorsa può essere ristretto?
Cosa significa che l'accesso a una risorsa può essere ristretto?
Signup and view all the answers
Qual è il significato di DNS in relazione all'accesso alle risorse?
Qual è il significato di DNS in relazione all'accesso alle risorse?
Signup and view all the answers
Quali informazioni devono essere incluse in un URL per accedere a una risorsa specifica?
Quali informazioni devono essere incluse in un URL per accedere a una risorsa specifica?
Signup and view all the answers
Qual è il ruolo dello schema HTTP nel contesto degli URL?
Qual è il ruolo dello schema HTTP nel contesto degli URL?
Signup and view all the answers
Quali sono le principali differenze tra i metodi HTTP GET e POST?
Quali sono le principali differenze tra i metodi HTTP GET e POST?
Signup and view all the answers
Che informazioni contiene l'header di una richiesta HTTP?
Che informazioni contiene l'header di una richiesta HTTP?
Signup and view all the answers
Cosa rappresenta il codice di stato '404' in una risposta HTTP?
Cosa rappresenta il codice di stato '404' in una risposta HTTP?
Signup and view all the answers
Qual è la differenza tra i metodi HEAD e GET in HTTP?
Qual è la differenza tra i metodi HEAD e GET in HTTP?
Signup and view all the answers
Qual è la funzione del DNS in relazione agli URL?
Qual è la funzione del DNS in relazione agli URL?
Signup and view all the answers
Come viene definita una URL logica e quale esempio si può fare?
Come viene definita una URL logica e quale esempio si può fare?
Signup and view all the answers
Quali informazioni possono essere contenute in un body di una richiesta POST?
Quali informazioni possono essere contenute in un body di una richiesta POST?
Signup and view all the answers
In che modo una connessione TCP si integra nella sintassi di una richiesta GET?
In che modo una connessione TCP si integra nella sintassi di una richiesta GET?
Signup and view all the answers
Cosa viene riportato in una risposta server dopo una richiesta HTTP di successo?
Cosa viene riportato in una risposta server dopo una richiesta HTTP di successo?
Signup and view all the answers
Cosa indica un codice di stato HTTP che inizia con 2?
Cosa indica un codice di stato HTTP che inizia con 2?
Signup and view all the answers
Qual è il significato del codice di stato 404?
Qual è il significato del codice di stato 404?
Signup and view all the answers
Che differenza c'è tra il codice 301 e il codice 302?
Che differenza c'è tra il codice 301 e il codice 302?
Signup and view all the answers
Qual è il risultato del codice di stato 204?
Qual è il risultato del codice di stato 204?
Signup and view all the answers
A cosa si riferisce il codice di errore 500?
A cosa si riferisce il codice di errore 500?
Signup and view all the answers
Cosa comporta un codice di stato che inizia con 4?
Cosa comporta un codice di stato che inizia con 4?
Signup and view all the answers
Qual è la funzione del codice di stato 503?
Qual è la funzione del codice di stato 503?
Signup and view all the answers
Qual è l'importanza della prima cifra del codice di stato HTTP?
Qual è l'importanza della prima cifra del codice di stato HTTP?
Signup and view all the answers
Cosa significa il codice 202 in una risposta HTTP?
Cosa significa il codice 202 in una risposta HTTP?
Signup and view all the answers
Cosa rappresenta il codice 304?
Cosa rappresenta il codice 304?
Signup and view all the answers
Cosa indica il codice di stato 301 in una redirection?
Cosa indica il codice di stato 301 in una redirection?
Signup and view all the answers
Come deve comportarsi un browser in caso di redirection con metodo POST?
Come deve comportarsi un browser in caso di redirection con metodo POST?
Signup and view all the answers
Qual è la funzione dell'header 'Location' in una risposta HTTP?
Qual è la funzione dell'header 'Location' in una risposta HTTP?
Signup and view all the answers
Cosa restituisce un server se una risorsa non è stata modificata dopo una certa data?
Cosa restituisce un server se una risorsa non è stata modificata dopo una certa data?
Signup and view all the answers
Qual è la differenza tra l'header 'Referrer' e 'User-Agent'?
Qual è la differenza tra l'header 'Referrer' e 'User-Agent'?
Signup and view all the answers
Cos'è l'header 'WWW-Authenticate' e a cosa serve?
Cos'è l'header 'WWW-Authenticate' e a cosa serve?
Signup and view all the answers
In quale situazione viene utilizzato l'header 'Pragma'?
In quale situazione viene utilizzato l'header 'Pragma'?
Signup and view all the answers
Quali informazioni possono essere contenute nel campo User-Agent?
Quali informazioni possono essere contenute nel campo User-Agent?
Signup and view all the answers
Qual è il significato dell'header 'Date' in una risposta HTTP?
Qual è il significato dell'header 'Date' in una risposta HTTP?
Signup and view all the answers
Quando si utilizza un codice di stato 304, cosa deve fare il client?
Quando si utilizza un codice di stato 304, cosa deve fare il client?
Signup and view all the answers
Che tipo di informazioni forniscono i campi 'Expires' e 'Last-Modified' in una richiesta HTTP?
Che tipo di informazioni forniscono i campi 'Expires' e 'Last-Modified' in una richiesta HTTP?
Signup and view all the answers
Qual è il formato standard accettato per la data nel campo 'Last-Modified'?
Qual è il formato standard accettato per la data nel campo 'Last-Modified'?
Signup and view all the answers
Quale strumento permette di analizzare il traffico di rete e quali protocolli può osservare?
Quale strumento permette di analizzare il traffico di rete e quali protocolli può osservare?
Signup and view all the answers
Cosa consente di fare la 'modalità promiscua' nelle schede di rete cablate?
Cosa consente di fare la 'modalità promiscua' nelle schede di rete cablate?
Signup and view all the answers
Come si differenzia il formato RFC 850 da quello ufficiale per il campo 'Last-Modified'?
Come si differenzia il formato RFC 850 da quello ufficiale per il campo 'Last-Modified'?
Signup and view all the answers
Qual è l'uso della 'modalità monitor' per le schede wireless?
Qual è l'uso della 'modalità monitor' per le schede wireless?
Signup and view all the answers
Qual è l'importanza della corretta definizione delle date nei protocolli HTTP?
Qual è l'importanza della corretta definizione delle date nei protocolli HTTP?
Signup and view all the answers
Che funzione ha il campo 'Expires' in una risposta HTTP?
Che funzione ha il campo 'Expires' in una risposta HTTP?
Signup and view all the answers
In che modo Wireshark può aiutare nella diagnosi di problemi di rete?
In che modo Wireshark può aiutare nella diagnosi di problemi di rete?
Signup and view all the answers
Qual è la funzione principale del campo 'Last-Modified' in un'intestazione HTTP?
Qual è la funzione principale del campo 'Last-Modified' in un'intestazione HTTP?
Signup and view all the answers
Quali sono le tre aree principali dell'interfaccia utente di Wireshark?
Quali sono le tre aree principali dell'interfaccia utente di Wireshark?
Signup and view all the answers
Cosa permette di fare un filtro di cattura in Wireshark?
Cosa permette di fare un filtro di cattura in Wireshark?
Signup and view all the answers
Come si differenziano i filtri di cattura dai filtri di visualizzazione in Wireshark?
Come si differenziano i filtri di cattura dai filtri di visualizzazione in Wireshark?
Signup and view all the answers
Cosa indica l'header 'User-Agent' in una richiesta HTTP?
Cosa indica l'header 'User-Agent' in una richiesta HTTP?
Signup and view all the answers
Qual è la sintassi corretta per escludere determinate porte in un filtro di cattura?
Qual è la sintassi corretta per escludere determinate porte in un filtro di cattura?
Signup and view all the answers
Quando è utile applicare filtri di visualizzazione in Wireshark?
Quando è utile applicare filtri di visualizzazione in Wireshark?
Signup and view all the answers
Cosa potrebbe indicare una risposta 'No Content' in una comunicazione HTTP?
Cosa potrebbe indicare una risposta 'No Content' in una comunicazione HTTP?
Signup and view all the answers
Quale header HTTP informa il server sui tipi di contenuti compressi accettati dal client?
Quale header HTTP informa il server sui tipi di contenuti compressi accettati dal client?
Signup and view all the answers
Qual è il significato di 'HTTP/1.1 200 OK' in una risposta del server?
Qual è il significato di 'HTTP/1.1 200 OK' in una risposta del server?
Signup and view all the answers
Perché è importante salvare i pacchetti acquisiti in Wireshark?
Perché è importante salvare i pacchetti acquisiti in Wireshark?
Signup and view all the answers
Qual è il metodo preferito per passare dati alle funzioni in PHP, evitando l'uso di variabili globali?
Qual è il metodo preferito per passare dati alle funzioni in PHP, evitando l'uso di variabili globali?
Signup and view all the answers
Come si utilizza la funzione header() per redirigere a un'altra pagina in PHP?
Come si utilizza la funzione header() per redirigere a un'altra pagina in PHP?
Signup and view all the answers
Qual è la funzione per visualizzare tutte le variabili PHP in ambiente di esecuzione?
Qual è la funzione per visualizzare tutte le variabili PHP in ambiente di esecuzione?
Signup and view all the answers
Cosa permette di fare l'array super globale $_SERVER in PHP?
Cosa permette di fare l'array super globale $_SERVER in PHP?
Signup and view all the answers
Perché è sconsigliato utilizzare la keyword global per accedere a variabili globali all'interno delle funzioni?
Perché è sconsigliato utilizzare la keyword global per accedere a variabili globali all'interno delle funzioni?
Signup and view all the answers
Qual è la sintassi corretta per impostare il tipo di contenuto di una risposta HTTP in PHP?
Qual è la sintassi corretta per impostare il tipo di contenuto di una risposta HTTP in PHP?
Signup and view all the answers
Come si può utilizzare un ciclo foreach per accedere alle informazioni di $_SERVER?
Come si può utilizzare un ciclo foreach per accedere alle informazioni di $_SERVER?
Signup and view all the answers
Quali tipi di dati contengono tipicamente le variabili dell'array $_SERVER?
Quali tipi di dati contengono tipicamente le variabili dell'array $_SERVER?
Signup and view all the answers
Qual è un modo corretto per passare variabili tra funzioni senza utilizzare la keyword global?
Qual è un modo corretto per passare variabili tra funzioni senza utilizzare la keyword global?
Signup and view all the answers
Cosa restituisce il codice echo $_SERVER['HTTP_USER_AGENT'];
?
Cosa restituisce il codice echo $_SERVER['HTTP_USER_AGENT'];
?
Signup and view all the answers
In che modo si differenziano le funzioni include e require nella gestione degli errori in PHP?
In che modo si differenziano le funzioni include e require nella gestione degli errori in PHP?
Signup and view all the answers
Qual è la differenza principale tra include_once e require_once rispetto alle loro controparti senza '_once'?
Qual è la differenza principale tra include_once e require_once rispetto alle loro controparti senza '_once'?
Signup and view all the answers
In quali contesti risultano più utili le direttive include e require?
In quali contesti risultano più utili le direttive include e require?
Signup and view all the answers
Come si gestiscono gli errori durante l'inclusione dei file con PHP?
Come si gestiscono gli errori durante l'inclusione dei file con PHP?
Signup and view all the answers
Qual è la sintassi per includere un file in PHP?
Qual è la sintassi per includere un file in PHP?
Signup and view all the answers
Qual è il rischio principale associato all'uso di funzioni che semplificano la gestione dello stato in HTTP?
Qual è il rischio principale associato all'uso di funzioni che semplificano la gestione dello stato in HTTP?
Signup and view all the answers
Cosa restituisce la funzione echo quando si esegue echo somma(1, 2)
se somma
è definita come function somma($a, $b) { return $a + $b; }
?
Cosa restituisce la funzione echo quando si esegue echo somma(1, 2)
se somma
è definita come function somma($a, $b) { return $a + $b; }
?
Signup and view all the answers
In che senso PHP è case-insensitive e come influisce sulle funzioni?
In che senso PHP è case-insensitive e come influisce sulle funzioni?
Signup and view all the answers
Perché è importante organizzare il codice PHP in modo modulare?
Perché è importante organizzare il codice PHP in modo modulare?
Signup and view all the answers
Qual è il parametro obbligatorio della funzione setcookie()?
Qual è il parametro obbligatorio della funzione setcookie()?
Signup and view all the answers
Come si imposta il valore di scadenza di un cookie per un'ora?
Come si imposta il valore di scadenza di un cookie per un'ora?
Signup and view all the answers
A cosa serve il parametro 'HttpOnly' in setcookie()?
A cosa serve il parametro 'HttpOnly' in setcookie()?
Signup and view all the answers
Qual è l'effetto di specificare un percorso ristretto nel setcookie()?
Qual è l'effetto di specificare un percorso ristretto nel setcookie()?
Signup and view all the answers
Qual è la sintassi per leggere un cookie in PHP?
Qual è la sintassi per leggere un cookie in PHP?
Signup and view all the answers
Come si imposta la scadenza di un cookie per un giorno?
Come si imposta la scadenza di un cookie per un giorno?
Signup and view all the answers
Perché è importante specificare il dominio nel setcookie()?
Perché è importante specificare il dominio nel setcookie()?
Signup and view all the answers
Cosa rende un cookie 'Secure' quando è impostato in setcookie()?
Cosa rende un cookie 'Secure' quando è impostato in setcookie()?
Signup and view all the answers
Cosa succede se non si imposta il valore del cookie nel setcookie()?
Cosa succede se non si imposta il valore del cookie nel setcookie()?
Signup and view all the answers
Quale rischio si corre non limitando il percorso e il dominio di un cookie?
Quale rischio si corre non limitando il percorso e il dominio di un cookie?
Signup and view all the answers
Qual è la funzione di base di un cookie nel contesto di un'interazione tra browser e server?
Qual è la funzione di base di un cookie nel contesto di un'interazione tra browser e server?
Signup and view all the answers
Qual è la principale differenza tra le funzioni setcookie() e setrawcookie() in PHP?
Qual è la principale differenza tra le funzioni setcookie() e setrawcookie() in PHP?
Signup and view all the answers
Quale array associativo in PHP viene utilizzato per gestire i cookie?
Quale array associativo in PHP viene utilizzato per gestire i cookie?
Signup and view all the answers
Cosa deve essere fatto per evitare errori quando si utilizzano le funzioni setcookie() o header() in PHP?
Cosa deve essere fatto per evitare errori quando si utilizzano le funzioni setcookie() o header() in PHP?
Signup and view all the answers
Come si imposta un cookie che dura un'ora in PHP?
Come si imposta un cookie che dura un'ora in PHP?
Signup and view all the answers
Qual è l'errore di codice nell'esempio 'echo "Ciao"; setcookie('nome_cookie', 'valore');'?
Qual è l'errore di codice nell'esempio 'echo "Ciao"; setcookie('nome_cookie', 'valore');'?
Signup and view all the answers
Perché i cookie sono considerati un meccanismo di scambio dati diverso rispetto a una normale richiesta?
Perché i cookie sono considerati un meccanismo di scambio dati diverso rispetto a una normale richiesta?
Signup and view all the answers
Cosa accade se si utilizza setcookie() dopo l'invio di dati HTML?
Cosa accade se si utilizza setcookie() dopo l'invio di dati HTML?
Signup and view all the answers
Qual è l'importanza dei cookie nel garantire l'accesso a pagine riservate?
Qual è l'importanza dei cookie nel garantire l'accesso a pagine riservate?
Signup and view all the answers
In che modo i cookie possono essere utilizzati per memorizzare preferenze degli utenti?
In che modo i cookie possono essere utilizzati per memorizzare preferenze degli utenti?
Signup and view all the answers
Qual è la sintassi corretta in PHP per controllare se esiste un cookie prima di accedervi?
Qual è la sintassi corretta in PHP per controllare se esiste un cookie prima di accedervi?
Signup and view all the answers
Come si visualizzano tutti i cookie memorizzati in PHP?
Come si visualizzano tutti i cookie memorizzati in PHP?
Signup and view all the answers
Qual è il primo passaggio del processo di gestione dei cookie tra browser e server?
Qual è il primo passaggio del processo di gestione dei cookie tra browser e server?
Signup and view all the answers
Cosa deve succedere affinché un cookie sia visibile al server nelle richieste successive?
Cosa deve succedere affinché un cookie sia visibile al server nelle richieste successive?
Signup and view all the answers
Qual è il modo corretto di inviare un cookie in una richiesta HTTP?
Qual è il modo corretto di inviare un cookie in una richiesta HTTP?
Signup and view all the answers
Qual è il comportamento comune dei cookie durante le prove di laboratorio?
Qual è il comportamento comune dei cookie durante le prove di laboratorio?
Signup and view all the answers
Perché è importante utilizzare isset()
quando si lavora con i cookie in PHP?
Perché è importante utilizzare isset()
quando si lavora con i cookie in PHP?
Signup and view all the answers
Quale struttura è utilizzata in PHP per gestire i cookie?
Quale struttura è utilizzata in PHP per gestire i cookie?
Signup and view all the answers
Come può essere visualizzato il valore di un cookie specifico?
Come può essere visualizzato il valore di un cookie specifico?
Signup and view all the answers
Qual è la funzione utilizzata per impostare un cookie con una durata di un'ora?
Qual è la funzione utilizzata per impostare un cookie con una durata di un'ora?
Signup and view all the answers
Come si può cancellare un cookie nel browser?
Come si può cancellare un cookie nel browser?
Signup and view all the answers
Quale funzione si utilizza per creare un timestamp per una data futura specifica?
Quale funzione si utilizza per creare un timestamp per una data futura specifica?
Signup and view all the answers
Cosa restituisce la funzione time() in PHP?
Cosa restituisce la funzione time() in PHP?
Signup and view all the answers
Qual è il vantaggio di utilizzare cookie per memorizzare informazioni come nome e cognome?
Qual è il vantaggio di utilizzare cookie per memorizzare informazioni come nome e cognome?
Signup and view all the answers
Qual è la sintassi corretta per impostare un cookie che dura 24 ore?
Qual è la sintassi corretta per impostare un cookie che dura 24 ore?
Signup and view all the answers
Cosa accade se non si specificano alcuni parametri nella funzione mktime()?
Cosa accade se non si specificano alcuni parametri nella funzione mktime()?
Signup and view all the answers
Perché utilizzare la radice (/) come percorso per un cookie è utile?
Perché utilizzare la radice (/) come percorso per un cookie è utile?
Signup and view all the answers
In che modo un cookie può essere impostato con una scadenza specifica in una data futura?
In che modo un cookie può essere impostato con una scadenza specifica in una data futura?
Signup and view all the answers
Qual è l'effetto di impostare un cookie con una scadenza già passata?
Qual è l'effetto di impostare un cookie con una scadenza già passata?
Signup and view all the answers
Quale metodo si utilizza in PHP per impostare un cookie che durerà 24 ore?
Quale metodo si utilizza in PHP per impostare un cookie che durerà 24 ore?
Signup and view all the answers
Come si può eliminare un cookie in PHP?
Come si può eliminare un cookie in PHP?
Signup and view all the answers
Quali sono i problemi di sicurezza associati all'uso dei cookie?
Quali sono i problemi di sicurezza associati all'uso dei cookie?
Signup and view all the answers
Come influiscono i cookie sul carico di lavoro del server?
Come influiscono i cookie sul carico di lavoro del server?
Signup and view all the answers
Qual è la differenza principale tra l'uso di mktime() e time() nella gestione dei cookie?
Qual è la differenza principale tra l'uso di mktime() e time() nella gestione dei cookie?
Signup and view all the answers
Qual è un possibile svantaggio dell'utilizzo indiscriminato dei cookie sul rispetto della privacy?
Qual è un possibile svantaggio dell'utilizzo indiscriminato dei cookie sul rispetto della privacy?
Signup and view all the answers
In che modo i browser moderni aiutano gli utenti nella gestione dei cookie?
In che modo i browser moderni aiutano gli utenti nella gestione dei cookie?
Signup and view all the answers
Cosa viene visualizzato se un cookie è impostato correttamente e letto con successo in PHP?
Cosa viene visualizzato se un cookie è impostato correttamente e letto con successo in PHP?
Signup and view all the answers
Quale percorso deve essere specificato per rendere un cookie accessibile su tutte le pagine del dominio?
Quale percorso deve essere specificato per rendere un cookie accessibile su tutte le pagine del dominio?
Signup and view all the answers
Qual è l'effetto di impiegare HTTPS nell'impostazione dei cookie?
Qual è l'effetto di impiegare HTTPS nell'impostazione dei cookie?
Signup and view all the answers
Perché $_COOKIE potrebbe sembrare vuoto dopo l'uso di setcookie() nella stessa pagina?
Perché $_COOKIE potrebbe sembrare vuoto dopo l'uso di setcookie() nella stessa pagina?
Signup and view all the answers
Qual è la differenza principale tra lo stato stateless del protocollo HTTP e l'uso dei cookie?
Qual è la differenza principale tra lo stato stateless del protocollo HTTP e l'uso dei cookie?
Signup and view all the answers
Come possono i cookie migliorare la gestione dello stato in un'applicazione web?
Come possono i cookie migliorare la gestione dello stato in un'applicazione web?
Signup and view all the answers
Quali tecniche venivano utilizzate in passato per mantenere lo stato dell'utente prima dei cookie?
Quali tecniche venivano utilizzate in passato per mantenere lo stato dell'utente prima dei cookie?
Signup and view all the answers
Quando sono stati introdotti i cookie e quale problema risolvono?
Quando sono stati introdotti i cookie e quale problema risolvono?
Signup and view all the answers
Qual è un esempio di come i cookie possono essere utilizzati per gestire un carrello della spesa?
Qual è un esempio di come i cookie possono essere utilizzati per gestire un carrello della spesa?
Signup and view all the answers
Perché l'approccio della riscrittura degli URL per gestire lo stato era considerato inefficace?
Perché l'approccio della riscrittura degli URL per gestire lo stato era considerato inefficace?
Signup and view all the answers
In che modo i cookie differiscono dai campi nascosti nei form per quanto riguarda la sicurezza?
In che modo i cookie differiscono dai campi nascosti nei form per quanto riguarda la sicurezza?
Signup and view all the answers
Qual è la principale funzionalità dei cookie rispetto alle sessioni in PHP?
Qual è la principale funzionalità dei cookie rispetto alle sessioni in PHP?
Signup and view all the answers
Cosa significa che il protocollo HTTP sia stateless e come i cookie affrontano questa limitazione?
Cosa significa che il protocollo HTTP sia stateless e come i cookie affrontano questa limitazione?
Signup and view all the answers
Qual è la struttura di base della direttiva Set-Cookie in HTTP?
Qual è la struttura di base della direttiva Set-Cookie in HTTP?
Signup and view all the answers
Come vengono inviati i cookie dal client al server durante le richieste successive?
Come vengono inviati i cookie dal client al server durante le richieste successive?
Signup and view all the answers
Qual è la dimensione minima che i browser devono supportare per i cookie secondo la specifica della versione 1?
Qual è la dimensione minima che i browser devono supportare per i cookie secondo la specifica della versione 1?
Signup and view all the answers
Qual è una delle funzioni della direttiva HttpOnly per i cookie?
Qual è una delle funzioni della direttiva HttpOnly per i cookie?
Signup and view all the answers
Cosa accade ai cookie quando scadono o vengono eliminati dall'utente?
Cosa accade ai cookie quando scadono o vengono eliminati dall'utente?
Signup and view all the answers
Qual è il limite complessivo di dimensioni per i cookie gestiti da un server per client?
Qual è il limite complessivo di dimensioni per i cookie gestiti da un server per client?
Signup and view all the answers
Qual è il significato del campo 'Domain' nella direttiva Set-Cookie?
Qual è il significato del campo 'Domain' nella direttiva Set-Cookie?
Signup and view all the answers
Quale metodo possono utilizzare i browser per memorizzare i cookie?
Quale metodo possono utilizzare i browser per memorizzare i cookie?
Signup and view all the answers
Qual è una delle informazioni opzionali che possono essere incluse in un cookie?
Qual è una delle informazioni opzionali che possono essere incluse in un cookie?
Signup and view all the answers
Quali sono i due valori principali che compongono un cookie?
Quali sono i due valori principali che compongono un cookie?
Signup and view all the answers
Qual è la funzione della codifica dei caratteri speciali nei cookie?
Qual è la funzione della codifica dei caratteri speciali nei cookie?
Signup and view all the answers
Cosa succede a un cookie senza data di scadenza?
Cosa succede a un cookie senza data di scadenza?
Signup and view all the answers
In che modo il flag secure migliora la sicurezza dei cookie?
In che modo il flag secure migliora la sicurezza dei cookie?
Signup and view all the answers
Come vengono ritrasmessi i cookie dal client al server?
Come vengono ritrasmessi i cookie dal client al server?
Signup and view all the answers
Qual è l'uso dell'array associativo $_COOKIE in PHP?
Qual è l'uso dell'array associativo $_COOKIE in PHP?
Signup and view all the answers
Quali caratteri speciali devono essere codificati nei cookie e perché?
Quali caratteri speciali devono essere codificati nei cookie e perché?
Signup and view all the answers
Cosa implica avere il dominio e il percorso opzionali per i cookie?
Cosa implica avere il dominio e il percorso opzionali per i cookie?
Signup and view all the answers
Qual è la differenza principale tra cookie temporanei e persistenti?
Qual è la differenza principale tra cookie temporanei e persistenti?
Signup and view all the answers
Come può l'uso di cookie influenzare l'esperienza dell'utente in una web application?
Come può l'uso di cookie influenzare l'esperienza dell'utente in una web application?
Signup and view all the answers
Study Notes
Cos'è PHP?
- PHP è un linguaggio di scripting open source, flessibile grazie alla sua vasta comunità di sviluppatori.
- Trova una quantità notevole di documentazione online, in particolare su www.php.net, dove sono disponibili esempi e risorse create dalla comunità, incluse librerie e strumenti software.
- PHP è un linguaggio server-side, il che significa che si esegue sul server piuttosto che sul client.
- Tuttavia, può essere eseguito anche localmente su una macchina senza bisogno di un server web, a condizione che sia installato un interprete PHP.
- In questi casi, è possibile sviluppare applicazioni con interfaccia grafica locale, utilizzando PHP-GTK per creare finestre, accettare input e visualizzare output, senza la necessità di un browser.
- PHP può essere utilizzato sia per scripting da riga di comando che per lo sviluppo di pagine web dinamiche.
- Sebbene abbia concorrenti, PHP continua a essere ampiamente utilizzato per la creazione di applicazioni moderne e non è affatto un linguaggio legacy.
- Essendo open source, PHP è multi-piattaforma, eseguibile su tutti i principali sistemi operativi come Linux, Windows, Mac OS e altri derivati.
- Questa caratteristica consente di trasferire facilmente il codice PHP da un sistema all'altro senza bisogno di grandi adattamenti.
Storia e Versioni
- La prima versione di PHP risale al 1995 e attualmente siamo alla versione 8.3.
- Il linguaggio continua a evolversi, introducendo nuove funzionalità per rimanere al passo con i tempi.
- Le versioni di PHP hanno un supporto di circa tre anni, durante i primi due dei quali vengono aggiunte nuove funzionalità, mentre l'ultimo anno è dedicato alla risoluzione di problemi di sicurezza e bug.
- Attualmente, le versioni 8.2 e 8.3 sono pienamente supportate, mentre le versioni precedenti alla 8 sono obsolete e non dovrebbero più essere utilizzate in produzione, soprattutto per questioni legate alla sicurezza.
- Nella didattica, molte delle funzionalità utilizzate sono comuni da almeno dieci anni, a partire dalle versioni 5.4 e 5.6.
- La versione 6 di PHP non è mai stata rilasciata a causa di disaccordi interni sulla direzione da prendere, è stata utilizzata principalmente come versione prototipo senza diventare uno standard.
Esecuzione di PHP su Server Web
- Per eseguire PHP in modalità server-side, è necessario un server web come Apache o Nginx, che si occuperà di interpretare il codice PHP.
- Quando un server web riceve una richiesta per un file PHP, lo passa all'interprete PHP.
- L'interprete esegue il codice PHP, genera una pagina HTML e la invia al server, che poi la inoltra al client.
- Per far funzionare PHP con un server web, è necessario configurare opportunamente il server e il modulo PHP, le configurazioni sono generalmente contenute in file di testo.
- Un esempio di nome di file PHP è "qualcosa.php", che conterrà codice PHP tra tag di apertura e chiusura simili a quelli HTML.
Collegamento con Database
- Molte applicazioni PHP si collegano a database per gestire dati dinamici.
- PHP può interagire con vari DBMS (Database Management System), come MySQL o MariaDB, per acquisire, modificare e interrogare dati.
- Non è strettamente necessario avere un database per utilizzare PHP, ma è una pratica estremamente comune.
- Esistono pacchetti preconfezionati, come XAMPP, che includono un server Apache, un interprete PHP e un database MySQL o MariaDB, e che facilitano la configurazione di un ambiente di sviluppo locale.
Esempio di Esecuzione di PHP in Locale
- Per eseguire un file PHP, come ad esempio "info.php", in locale, possiamo usare un ambiente di sviluppo come Visual Studio Code.
- Questo ambiente offre la possibilità di avviare un server web integrato, che permetterà di eseguire il codice PHP sulla macchina locale.
- Quando il server web è in ascolto (per esempio sulla porta 8000), possiamo accedere alla pagina "info.php" tramite un browser, che visualizzerà una tabella con tutte le informazioni del sistema su cui viene eseguito il codice.
Sintassi di PHP
- La sintassi di PHP è molto simile a quella di JavaScript.
- Ad esempio, è possibile creare un ciclo for in PHP con una struttura molto simile a JavaScript.
Commenti
- In PHP, i commenti sono simili a C e C ++: puoi usare due barre oblique (
//
) per i commenti su singola riga o/* */
per i commenti su più righe. - È possibile usare anche il cancelletto (
#
) per commenti su singola riga, ma questo è meno comune.
Identificatori
- Gli identificatori, come i nomi delle variabili o delle funzioni, possono contenere qualsiasi carattere alfanumerico o underscore (
_
). - Non possono iniziare con un numero, ma possono iniziare con una lettera o underscore.
- Sebbene sia possibile usare caratteri ASCII estesi (da 126 a 255), è consigliato limitarsi ai caratteri standard dell'alfabeto ASCII per evitare problemi di compatibilità.
Variabili
- Le variabili in PHP devono essere precedute dal simbolo
$
, quindi una variabile chiamatatop
sarà scritta come$top
. - PHP distingue le maiuscole dalle minuscole, quindi
$Top
e$top
sono due variabili diverse. - Le variabili non devono essere dichiarate esplicitamente prima dell'uso, ma è consigliato farlo per chiarezza.
- Le variabili non sono tipizzate al momento della dichiarazione, ma assumono un tipo al momento dell'inizializzazione.
- Se una variabile non è inizializzata, PHP assegnerà un valore predefinito in base al contesto.
- PHP prova a convertire automaticamente il tipo quando la variabile viene utilizzata in un contesto diverso.
- La funzione
isset()
verifica se una variabile è stata impostata. - La funzione
unset()
rimuove una variabile e fa sì che non esista più.
Tipi di Dati
- PHP supporta tipi scalari (booleani, interi, numeri a virgola mobile e stringhe) e tipi composti (array e oggetti).
- Esistono anche tipi speciali come
null
(assenza di valore) eresource
, utilizzato per gestire risorse esterne come connessioni a database. - Alcune funzioni utili per il debug includono
is_int()
,is_float()
,is_string()
per verificare il tipo di una variabile. - La funzione
gettype()
restituisce il tipo di una variabile, mentrevar_dump()
stampa sia il tipo che il valore della variabile.
Numeri
- I numeri in PHP sono sempre con segno.
- Gli interi possono essere rappresentati in diverse basi: decimale (base 10), ottale (base 8), binario (base 2), esadecimale (base 16).
- In caso di overflow, PHP converte automaticamente l'intero in un numero a virgola mobile, ma questo può introdurre errori di arrotondamento.
- Le funzioni
round()
efloor()
possono aiutare a gestire gli errori di arrotondamento.
Stringhe
- Le stringhe in PHP possono essere racchiuse da singoli apici (`) o doppi apici (").
- Con i doppi apici, le variabili all'interno della stringa vengono espanse, mentre con i singoli apici no.
- Per includere apici all'interno di una stringa, è necessario "scaparli" con il backslash (
\
). - PHP supporta HEREDOC e NOWDOC per stringhe su più righe.
Stringhe in PHP
- Le stringhe in PHP possono essere racchiuse tra apici singoli (') o doppi apici (").
- I doppi apici consentono l'espansione delle variabili all'interno della stringa, mentre gli apici singoli no.
- Per utilizzare gli apici all'interno di una stringa, è necessario "scaparli" con il backslash ().
- Per stringhe su più righe, PHP supporta HEREDOC e NOWDOC.
- HEREDOC consente di definire stringhe su più righe, mantenendo la formattazione originale.
Variabili Variabili
- In PHP, è possibile utilizzare variabili il cui nome è dinamico.
- Per ottenere questo, si usano due simboli di dollaro ( $$ ).
- Esempio:
-
$var = "pippo"
-
$$var = "pluto"
-
echo $$var; // Output: pluto
-
- In questo caso,
$var
contiene "pippo", quindi$$var
equivale$pippo
, che ha valore "pluto".
Array in PHP
- Gli array in PHP sono mappe ordinate, con un'associazione tra indice e valore.
- L'indice può essere sia numerico che una stringa.
- Per definire un array numerico:
-
$array = array(3, 2, 5); // Primo valore 3, secondo valore 2, terzo valore 5
-
- Per aggiungere un elemento alla fine dell'array:
-
$array[] = -1; // Aggiunge -1 alla fine dell'array
-
- Gli array associativi sono definiti con coppie chiave-valore:
-
$albo = array("nome" => "Topolino", "anno" => 1949);
-
Funzioni per gli Array
-
implode()
: converte un array in una stringa, separando i valori con un delimitatore.-
$data = array(22, 1, 1945);
-
echo implode("-", $data); // Output: 22-1-1945
-
-
explode()
: fa l'operazione inversa, trasformando una stringa in un array in base a un delimitatore.-
$string = "pautasso,giovanni,24";
-
$array = explode(",", $string);
-
-
explode()
accetta un parametro opzionale per il numero massimo di elementi.-
$array = explode(",", $string, 2); // Crea un array con massimo 2 elementi
-
Ordinamento degli Array
-
sort()
: ordina gli array numerici in ordine crescente. -
rsort()
: ordina gli array numerici in ordine decrescente. -
ksort()
: ordina un array associativo in base alle chiavi. -
asort()
: ordina un array associativo in base ai valori. - Esempio di ordinamento di un array associativo:
-
$array = array("Paolo" => 6, "Antonio" => 10, "Marco" => 8);
-
asort($array); // Ordina per valore: Paolo (6), Marco (8), Antonio (10)
-
Variabili Superglobali
- Le variabili superglobali sono predefinite in PHP e accessibili globalmente.
- Esempi:
-
$_GET
: contiene i dati inviati tramite il metodo GET -
$_POST
: contiene i dati inviati tramite il metodo POST -
$_REQUEST
: contiene i dati inviati tramite entrambi i metodi GET e POST -
$_COOKIE
e$_SESSION
: gestiscono rispettivamente i cookie e le sessioni
-
- Esempio di utilizzo di
$_GET
:-
if (isset($_GET['nome'])) {
-
echo "Ciao, ".$_GET['nome'];
-
}
-
- Se un form invia un valore con il campo
nome
tramite il metodo GET, questo codice stamperà "Ciao, [nome]". - Le superglobali sono utili per accedere ai dati dai form HTML o per gestire sessioni e cookie.
Il Metodo GET in PHP
- Il metodo GET invia i dati del form all'interno della URL.
- I dati del form sono separati dal carattere '&'.
- Alcuni caratteri speciali, come '=' e '&', vengono codificati in notazione %xx, dove xx è il codice esadecimale del carattere.
- La codifica in esadecimale è utilizzata per entrambe le richieste GET e POST.
- Lo spazio viene codificato con il simbolo '+'.
- Il metodo POST invia i dati nel corpo della richiesta HTTP.
- Entrambi i metodi GET e POST possono utilizzare la codifica x-www-form-urlencoded.
- Il metodo POST utilizza il formato multipart/form-data per inviare dati complessi, come file.
- Il metodo GET invia i parametri nella URL.
- Il metodo POST invia i dati nel corpo della richiesta.
- Gli array globali di PHP (GET,_GET, GET,_POST, $_REQUEST) permettono di accedere ai dati inviati dal form.
Codifica URL
- La codifica URL è necessaria per trasmettere correttamente i dati tra il client e il server.
- La codifica in esadecimale rappresenta il codice Latin-1 del carattere.
- Caratteri come '=' e '&' devono essere codificati per evitare ambiguità.
- Lo spazio viene codificato come '+'.
- La codifica URL facilita la decodifica dei dati sul server.
Esempio di Form con Metodo GET
- Un form con campi cognome, figli e nascita invia i dati tramite il metodo GET.
- I caratteri speciali come spazi, accenti e slash vengono codificati nella URL.
- L'URL resultante contiene i dati del form in forma codificata.
Differenze tra GET e POST
- Il metodo GET invia i dati nella URL.
- Il metodo POST invia i dati nel corpo della richiesta HTTP.
- Entrambi i metodi utilizzano la codifica x-www-form-urlencoded, ma il metodo POST può utilizzare anche il formato mutlipart/form-data.
- Il metodo GET è limitato nella quantità di dati che può inviare.
- Il metodo POST è più flessibile e può inviare più dati, incluso file.
Header HTTP
- L'header HTTP contiene informazioni sulla richiesta, come il tipo di browser e la lingua.
- L'header HTTP per il metodo POST indica il tipo di codifica dei dati.
Accesso ai Dati del Form
- Gli array globali di PHP (GET,_GET, GET,_POST, $_REQUEST) permettono di accedere ai dati inviati dal form.
- Questi array semplificano la gestione dei dati inviati dal form.
Sintassi HTTP
- Il body di una richiesta HTTP è separato dall'header da una riga vuota.
- La riga vuota è la sintassi per separare l'header dal body.
Codifica Multipart/Form-data
- La codifica multipart/form-data è un'alternativa alla codifica standard per i form.
- In questo caso, la query string è vuota.
- Gli elementi del form non sono codificati come URL encoded, ma vengono separati in parti distinte nel body del messaggio HTTP.
- Il
Content-Type
viene impostato sumultipart/form-data
. - È necessario definire un boundary che separa le diverse parti del form.
- Ogni parte del form è delimitata dal boundary.
- Il boundary viene ripetuto alla fine del multipart seguito da
--
per indicare la conclusione del messaggio.
Gestione dati da form
- È importante gestire correttamente i casi in cui un dato non venga inviato da un form.
- I controlli lato client (come quelli implementati in JavaScript) non sono sufficienti a garantire che i dati inviati siano corretti.
- I controlli devono essere eseguiti anche lato server.
- I radio button permettono di selezionare una sola opzione.
- Le checkbox permettono di selezionare più opzioni o nessuna.
- Il codice lato server deve essere in grado di gestire correttamente tutte le combinazioni di input.
Gestione file da form
- Il controllo di tipo
file
consente all'utente di selezionare un file dal proprio file system. - Questo tipo di input è generalmente gestito tramite il metodo POST e la codifica
multipart/form-data
. - I file vengono trasmessi direttamente, senza essere codificati.
- I byte del file vengono trasmessi direttamente, senza essere codificati come nell'URL encoding.
Trasmissione di file e metodi HTTP
- Un file potrebbe triplicare le sue dimensioni durante la trasmissione, il che può essere un problema.
- Per evitare questo, si utilizza il multipart, che consente di trasmettere un form contenente il file.
- Il form può includere un controllo file e altri controlli di testo.
- La codifica utilizzata è multipart MIME, con un boundary identificativo.
- Ogni parte del form multipart è separata da un boundary e contiene informazioni sul controllo, come il nome e il contenuto.
- Nel caso di un file, il contenuto è il testo del file stesso, in formato text/plain.
Confronto tra metodi GET e POST
- Il metodo GET è più comprensibile, in quanto i parametri sono visibili nell'URI.
- GET consente il caching e l'indicizzazione, che possono migliorare le prestazioni.
- GET ha limiti nella quantità di dati che può trasportare.
- Il metodo POST è più privato, in quanto i parametri non sono visibili nell'URI.
- POST non ha limiti sulle dimensioni dei dati che può trasportare.
Schema di base del web dinamico
- Il browser richiede una risorsa dinamica, il server la elabora tramite un interprete (come PHP).
- Il server restituisce una pagina HTML, che può contenere script e risorse statiche o dinamiche.
- L'interprete può interagire con un database per recuperare o salvare dati.
- Questo schema è comune a diverse tecnologie server-side.
- Il server genera la pagina e la invia al browser, che la renderizza e la visualizza all'utente.
Dimensione dei file e metodi HTTP
- La dimensione dei file può essere significativamente aumentata durante la trasmissione, con un aumento fino a tre volte la dimensione originale
- Il metodo multipart permette di trasmettere un file tramite un form specificando il tipo di codifica e utilizzando il metodo POST
- La codifica utilizzata per il file è multipart MIME con un boundary (una sequenza di caratteri) che delimita le varie parti del form
- Il file viene trasmesso con form-data ed un nome specifico (es. "myFile")
- I controlli di tipo testo possono essere inclusi nel form multipart
- L'ultima parte del messaggio multipart termina con il boundary seguito da "--"
Metodi GET e POST
- Il metodo POST è obbligatorio quando si trasmette un file
- GET: rendere chiaro al cliente cosa sta facendo, facilita il caching, l'indicizzazione da parte dei proxy e il debug
- GET: ha un limite di dati che possono essere inviati, solitamente qualche migliaio di caratteri
- POST: offre maggiore privacy, non lascia traccia nei nodi intermedi, non ha limiti sui dati che possono essere inviati
- La scelta tra GET e POST dipende dal contesto e dai dati che si desiderano trasmettere
Web Dinamico: Server-Side Scripting
- Il web Dinamico permette di creare pagine web che variano in base alle richieste dell'utente, al contenuto di un database o al tempo
- CGI: (Common Gateway Interface) permette l'interazione con un programma eseguibe dal server, ma richiede molte risorse
- Linguaggi di script lato server: JavaScript, Python, PHP, Perl, ecc. sono utilizzati per generare codice HTML dinamico
- SSI (Server-Side Includes) permettono di integrare semplici informazioni nelle pagine web, ma sono abbastanza limitati
- XSSI (Extended Server-Side Includes) ha aggiunto flessibilità ma sono stati sostituiti da linguaggi di script più potenti
- JSP (Java Server Pages) creano pagine dinamiche combinando codice Java con template HTML
- Framework e librerie offrono template e funzioni per scrivere codice in modo più efficiente e robusto
- Il web dinamico necessita di un server più potente rispetto al web statico in quanto deve eseguire operazioni complesse
Problemi del web Dinamico e Caching
- La difficoltà di fare caching e bookmarking per le pagine dinamiche, soprattutto per le pagine che non usano il metodo GET
- I parametri non sono puntuali e la pagina cambia in base ai dati e al momento, rendendo complessa l'indicizzazione
Validazione e HTTP
- Il codice HTML risultante, sia statico che dinamico, deve essere valido per essere correttamente visualizzato dal browser
- I plugin del browser permettono di verificare la correttezza del codice HTML o CSS
- L'applicazione deve restituire un messaggio HTTP corretto
- Si possono specificare campi dell'header HTTP tramite PHP, ad esempio il Content-Type
- In caso di errore, il codice PHP può restituire uno status di errore, come il 404 (risorsa non trovata)
Tecnologie Server-Side Scripting
- ASP di Microsoft (ora ASP.NET): permette di sviluppare pagine dinamiche con Visual Basic o JavaScript
- PHP: open source, largamente diffuso e supportato su quasi tutti i server
- JSP (Java Server Pages): tecnologia sviluppata da Sun (ora Oracle) che combina codice Java con template HTML
- Tomcat: un server che suppporta i servlet e traduce il codice JSP in una pagina HTML eseguibile lato server
Cicli e Array Associativi in PHP
- foreach: ciclo specifico per iterare sugli array associativi in PHP, più efficiente di un ciclo for standard.
-
Sintassi foreach:
-
foreach ($array as $valore)
: itera su ogni valore dell'array. -
foreach ($array as $chiave => $valore)
: itera su ciascuna chiave e valore dell'array.
-
Esempi di Utilizzo di foreach
-
Vocabolario: esempio che dimostra l'utilizzo di
foreach
per creare un vocabolario italiano-inglese. - Ciclo che itera su un vettore con foreach: esempio di codice che scorre un array contenente elementi come "test1", "test2", ecc., stampandoli uno per uno.
-
Vocabolario con foreach: esempio che dimostra l'uso di
foreach
per iterare su un array associativo, estraendo sia la chiave che il valore di ogni elemento e stampandoli in formato "chiave = valore".
count()
: Funzione per Contare Elementi in Array
- Funzionalità: conta gli elementi in un array (monodimensionale o multidimensionale).
-
Parametro Opzionale:
COUNT_RECURSIVE
per contare gli elementi di un array multidimensionale (matrici) ricorsivamente. -
Esempio di Uso:
-
$dimensione = count($vettore)
: ottiene la lunghezza dell'array$vettore
. -
count($vettore, COUNT_RECURSIVE)
: conta gli elementi di un array multidimensionale$vettore
ricorsivamente.
-
Funzioni di Gestione Indici in Array
- reset(): riporta l'indice dell'array all'inizio.
- end(): posiziona l'indice dell'array alla fine.
- next(): sposta l'indice avanti di un elemento.
- prev(): sposta l'indice indietro di un elemento.
- key(): restituisce l'indice corrente dell'array.
- current(): restituisce il valore corrente dell'array.
-
each(): funzione deprecata a partire da PHP 8.0, era equivalente a
key()
ecurrent()
combinati.
Esempi di Utilizzo delle Funzioni di Indice
-
Ciclo for che scorre un array associativo: esempio che utilizza
reset()
,key()
,current()
, enext()
per scorrere un array associativo. -
Ciclo for inverso: esempio che utilizza
end()
eprev()
per scorrere un array in ordine inverso.
### Sanitizzazione dell'Input
- La sanitizzazione dell'input è un'importante misura di sicurezza nella programmazione web, che aiuta a prevenire gli attacchi informatici e incidenti di sicurezza.
- La sanitizzazione elimina potenziali rischi derivanti da caratteri non validi, come gli spazi, che possono causare errori di interpretazione del codice.
- La funzione
trim()
rimuove gli spazi all'inizio e alla fine di una stringa.
Gestione degli Spazi
- Gli spazi nei nomi di file o input possono causare malfunzionamenti del programma.
- È fondamentale gestire gli spazi nei comandi della riga di comando, poiché un'interpretazione errata può portare a errori.
Verifica dell'Input
- È importante verificare se un campo in un form è vuoto o non inizializzato.
- Un campo può essere considerato vuoto in diversi casi: stringa vuota, stringa "0", intero 0, valore null, false, array vuoto, variabile non inizializzata o variabile non esistente.
Funzioni di Filtraggio e Validazione
- PHP offre diverse funzioni di filtraggio e validazione per garantire la sicurezza del codice.
-
FILTER_VALIDATE_EMAIL
verifica se un dato è un indirizzo email valido. -
FILTER_SANITIZE_EMAIL
rimuove i caratteri non validi da un indirizzo email. - I filtri sono disponibili dalla versione 5.2 di PHP.
Altri Filtri
-
FILTER_VALIDATE_BOOLEAN
verifica se un valore è un booleano. -
FILTER_VALIDATE_FLOAT
valida i valori in virgola mobile. -
FILTER_VALIDATE_INT
valida i numeri interi. -
FILTER_VALIDATE_IP
valida gli indirizzi IP. -
FILTER_VALIDATE_URL
valida gli URL.
Espressioni Regolari
- PHP supporta le espressioni regolari tramite
FILTER_VALIDATE_REGEXP
. - Questa funzione permette di creare filtri personalizzati per verificare se un dato corrisponde a un'espressione regolare specifica.
Regolar Expressions in PHP
- Le regular expressions possono essere utilizzate in PHP in modo esplicito tramite l'uso di funzioni specifiche.
- Queste funzioni sono simili a quelle utilizzate in JavaScript e consentono di validare gli input.
- Esistono diverse funzioni per la convalida, come filter_var() che controlla se una variabile è valida.
- Filter_var() verifica se una variabile è valida all'interno di un array associativo predefinito, ad esempio GETo_GET o GETo_POST.
- L'utilizzo di filter_var() con un filtro appropriato può essere utilizzato per verificare la validità di un input.
- Per esempio, filter_var() con il filtro FILTER_VALIDATE_EMAIL verifica se un indirizzo email è valido.
- Le funzioni di filtraggio possono avere flag aggiuntive come "min_range" e "max_range" per il controllo degli intervalli minimi e massimi.
- Ad esempio, FILTER_VALIDATE_INT può essere utilizzato per limitare un numero intero a un intervallo specifico.
- Esistono altre funzioni come filter_id() che restituisce l'ID di un filtro e filter_input() che funziona in modo simile a filter_var() ma agisce direttamente sulle variabili di input come GETo_GET o GETo_POST.
- Per filtrare un intero array, è possibile utilizzare filter_var_array() o filter_input_array().
- La funzione filter_list() fornisce una lista di filtri disponibili sul sistema.
- La validazione degli input è importante per la sicurezza e l'integrità del codice.
- È possibile strutturare il codice in modo da verificare l'esistenza dell'input, pulirlo e poi validarlo con filter_var().
- La validazione degli input deve essere eseguita prima di elaborare i dati, per evitare errori e potenziali vulnerabilità.
- È importante conoscere i filtri disponibili e le opzioni per ogni filtro per una validazione efficiente.
- È possibile utilizzare il filtro FILTER_VALIDATE_INT per controllare la validità di un'età, garantendo che sia compresa tra un intervallo definito.
- Il filtro FILTER_VALIDATE_INT restituisce false se l'input non è un numero intero o se non è compreso nell'intervallo.
Espressioni Regolari in PHP
- PHP utilizza l'estensione PCRE (Perl Compatible Regular Expressions) per gestire le espressioni regolari.
- Le espressioni regolari in PHP seguono lo standard PCRE, con alcune estensioni specifiche.
- Il flag
i
ignora le differenze di maiuscolo/minuscolo nell'espressione regolare. - I flag vengono specificati dopo la chiusura dell'espressione regolare.
- I caratteri speciali come
{n,m}
,*
,+
,?
hanno lo stesso significato di JavaScript.
Funzioni per le Espressioni Regolari
-
preg_match()
: Verifica se una stringa corrisponde a un pattern. -
preg_replace()
: Sostituisce parti di una stringa in base a un'espressione regolare. -
preg_split()
: Divide una stringa in base a un'espressione regolare. -
preg_grep()
: Restituisce un array di stringhe che corrispondono al pattern.
Gestione degli Errori
- La funzione
preg_last_error()
restituisce l'ultimo errore durante l'esecuzione di un'espressione regolare.
Esempi di Utilizzo
-
preg_match()
:- Il flag
PREG_OFFSET_CAPTURE
permette di ottenere l'indice del match all'interno della stringa. - Il parametro opzionale
offset
indica da quale posizione della stringa iniziare la ricerca. - Il risultato di
preg_match()
è un valore booleano: 1 se c'è un match, 0 se non c'è, e false in caso di errore.
- Il flag
-
Esempio di Validazione:
- Una password può essere validata con un'espressione regolare che verifica la lunghezza e i caratteri ammessi.
- Una data può essere validata con un'espressione regolare che verifica il formato
gg-mm-aaaa
.
-
Catturare i Gruppi:
- Le parentesi tonde () permettono di catturare i gruppi di caratteri all'interno dell'espressione regolare.
- I gruppi catturati possono essere utilizzati per estrarre informazioni specifiche da una stringa.
Differenze tra false
e 0
-
false
viene restituito in caso di errore nelle funzioni di gestione delle espressioni regolari. -
0
indica che non è stato trovato alcun match.
Obiettivi degli sviluppatori
- Gli sviluppatori hanno mirato a creare un modo semplice, estensibile ed efficiente per connettere nodi, applicazioni e utenti su una rete.
- La comunicazione remota tramite il paradigma client-server è fondamentale.
- Il client richiede un servizio dal server.
- Un esempio comune è l'utilizzo di un browser per accedere a una pagina web ospitata da un server.
Struttura e Funzionalità di HTTP
- HTTP è stato progettato per gestire dati di diverso tipo, adattandosi all'evoluzione di Internet.
- Un'unità di dati HTTP contiene due parti: Header e Body.
- L'Header fornisce informazioni sui dati, come il formato.
- Il Body contiene i dati effettivi in un formato adatto al destinatario (ad esempio, HTML o JSON).
- Il tipo MIME indica il formato dei dati (ad esempio, text/plain, text/html).
Efficienza e Caching
- Meccanismi di caching memorizzano i dati trasmessi in nodi intermedi, riducendo il carico sui server.
- Originariamente, HTTP era stateless, ma sono state introdotte funzionalità per la gestione dello stato, come i cookie.
Sicurezza in HTTP
- HTTP nella sua versione originale non era sicuro.
- HTTPS, tramite TLS, fornisce un livello di sicurezza.
- La maggior parte dei siti web moderni utilizza HTTPS per garantire la confidenzialità e l'integrità dei dati.
Evoluzione di HTTP
- HTTP/1.0 ha introdotto funzionalità di base per la trasmissione di documenti strutturati.
- HTTP/1.1 ha migliorato le prestazioni con il riutilizzo delle connessioni TCP, la compressione dei dati e il caching.
- HTTP/2 ha ulteriormente migliorato l'efficienza, consentendo la trasmissione simultanea di più risorse.
- HTTP/3 utilizza QUIC (basato su UDP), aumentando ulteriormente la velocità e la sicurezza.
- HTTP/3 utilizza UDP al posto di TCP, offrendo una velocità maggiore ma una minore affidabilità.
- UDP è meno affidabile, ma è vantaggioso in canali fisici altamente affidabili come la fibra ottica.
RFC e la loro importanza
- Gli RFC sono documenti open che descrivono protocolli e linee guida per Internet.
- Forniscono un processo di sviluppo e standardizzazione trasparente e collaborativo.
HTTP 0.9: Le origini
- HTTP 0.9 era una versione non standardizzata e semplice, che supportava solo il metodo GET.
- Non aveva una separazione tra header e body.
HTTP 1.0: La prima versione ufficiale
- HTTP 1.0 è stato standardizzato nell'RFC 1945.
- Utilizzano TCP sulla porta 80.
- E' stateless, ogni richiesta è indipendente.
- I dati sono codificati a 8-bit.
Client-server e scambio di dati
- Il modello client-server stabilisce una connessione TCP tra client e server.
- Il client invia una richiesta GET al server, che risponde con i dati.
- Ogni risorsa su una pagina web (ad esempio, immagini, script) richiede una connessione TCP separata.
- Questo crea un overhead significativo, comportando molte connessioni per una singola pagina web.
Sintassi della URL e protocolli
- Un URL è un indirizzo che identifica una risorsa su Internet.
- La sintassi inizia con lo schema (protocollo), come HTTP, FTP, file o mailto.
- Dopo :// segue l'host e il percorso della risorsa.
Esempio di HTTP 1.0: Overhead delle connessioni TCP
- In pagine web complesse, ogni risorsa richiede una connessione TCP separata, causando un overhead significativo.
- HTTP/1.1 ha parzialmente risolto questo problema riutilizzando le connessioni TCP.
URL
- L'URL è un modo per identificare e accedere alle risorse su internet.
- È composto da diversi componenti, tra cui:
- Schema (ad esempio, http, https)
- Host (ad esempio, www.miosito.it)
- Porta (opzionale, ad esempio, 80 per HTTP, 443 per HTTPS)
- Percorso (ad esempio, /lab7/esercizio7.1/es7.1.php)
- Ancora (opzionale, ad esempio, #sezione)
- Le URL non sono l'unico modo per gestire le risorse, sono limitate nel manipolare e categorizzare le risorse in modo logico.
- Il DNS (Domain Name System) associa nomi logici a nodi di rete, rendendo più efficiente l'accesso alle risorse, soprattutto quelle replicate su più nodi.
- Le URL logiche identificano una risorsa indipendentemente dalla sua posizione fisica, ad esempio:
- RFC: rfc://ietf/rfc1234
- ISBN: urn:isbn:9781234567890
Richieste HTTP
- Le richieste HTTP sono formate da righe di testo ASCII, ogni riga termina con CRLF (Carriage Return e Line Feed).
- Sono composte da un header e un body (opzionale).
- L'header contiene informazioni come il tipo di contenuto e l'ultima modifica del file.
- Il body contiene i dati utili, come immagini, video, file audio.
- I metodi HTTP definiscono il tipo di azione che il cliente richiede al server, i principali sono:
- GET: recupera una risorsa dal server
- HEAD: recupera solo l'header della risposta
- POST: invia dati al server
- Anche con il metodo GET, è possibile inviare un insieme limitato di dati utilizzando la parte di query.
Risposte HTTP
- Hanno un formato specifico che include la versione del protocollo, lo stato del risultato (successo o fallimento) e un codice di stato.
- Lo status code indica il risultato della richiesta:
- 200 OK: risorsa trovata e recuperata con successo
- 404 Not Found: risorsa non trovata
- Il codice di stato può essere accompagnato da una descrizione testuale opzionale, come "OK" per 200.
- A seconda della connessione client-server, si può inviare una URI completa o solo il percorso della risorsa.
Metodi HTTP
-
GET:
- Recupera una risorsa dal server, identificata tramite URL.
- Sintassi:
GET / HTTP/1.0
- Se la risorsa è disponibile, il server risponde con:
HTTP/1.0 200 OK
seguito dagli header. - Gli header possono contenere informazioni come
Content-Type
,Content-Length
,Last-Modified
.
-
HEAD:
- Funziona in modo simile a GET, ma restituisce solo gli header della risposta, senza il corpo della risorsa.
- Sintassi:
HEAD / HTTP/1.0
- La risposta include solo gli header necessari.
-
POST:
- Invia dati al server.
- La richiesta POST contiene sia l'header che il body, che trasporta i dati.
- Sintassi:
POST /submit HTTP/1.0\nContent-Type: text/plain\nContent-Length: 12\n\nAntonio
- Il server elabora i dati inviati e restituisce una risposta con il risultato dell'elaborazione.
Codici di Stato HTTP
- I codici di stato HTTP, che iniziano con una cifra, indicano la categoria semantica dello scambio HTTP.
- 1xx: Informazioni utili, non un errore o un successo completo.
- 2xx: Successo. La risorsa è stata recuperata correttamente.
- 3xx: Redirection: la risorsa è stata spostata o modificata.
- 4xx: Errori del client.
- 5xx: Errori del server.
Esempi di Codici di Stato
- 200: "OK" - Risorsa recuperata correttamente.
- 201: "Created" - Risorsa creata in risposta alla richiesta.
- 202: "Accepted" - La richiesta è stata accettata, ma la risorsa non è ancora stata fornita completamente.
- 204: "No Content" - Successo, ma la risposta non ha contenuto.
- 301: "Moved Permanently" - La risorsa è stata spostata permanentemente. Il server specifica la nuova URI.
- 304: "Not Modified" - La risorsa non è stata modificata, non serve scaricare nuovamente.
- 400: "Bad Request" - Richiesta non valida o incomprensibile.
- 401: "Unauthorized" - Necessario fornire credenziali.
- 403: "Forbidden" - Accesso proibito, anche con credenziali valide.
- 404: "Not Found" - Risorsa non trovata.
- 500: "Internal Server Error" - Errore interno del server.
- 501: "Not Implemented" - Funzionalità non implementata dal server.
- 502: "Bad Gateway" - Problema di comunicazione tra intermediari (proxy).
- 503: "Service Unavailable" - Servizio temporaneamente non disponibile.
Redirection e Codici 3xx
- La redirezione indica che la risorsa non si trova più all'URI specificata.
- Il server può usare il campo "Location" nell'header HTTP per fornire una nuova URI.
- Per il codice 301, il server fornisce una nuova URI e il browser accede automaticamente alla nuova risorsa.
Metodo POST e Redirection
- Con il metodo POST, il browser non dovrebbe inviare automaticamente i dati alla nuova URI in caso di redirezione.
- L'utente dovrebbe essere coinvolto nella decisione di inviare i dati alla nuova destinazione.
Altri Header HTTP
- Date: Indica la data di creazione del messaggio HTTP.
- Pragma: Indica se la pagina può essere messa in cache.
- Authorization: Invia le credenziali per l'accesso a risorse protette.
- From: Indica una mailbox di contatto per l'autore della richiesta.
- If-Modified-Since: Invia la risorsa solo se è stata modificata dopo una certa data. Se non modificata, il server restituisce il codice 304.
Referrer e User-Agent
- Referrer: Indica da quale pagina il client è arrivato.
- User-Agent: Indica il tipo di client (browser, dispositivo) che effettua la richiesta.
Response Header
- Location: Per le redirection.
- Server: Indica il tipo di software utilizzato dal server.
- WWW-Authenticate: Il server chiede al client di fornire credenziali di autenticazione.
- Entity Header: Descrivono il contenuto del corpo della richiesta o risposta HTTP, come il tipo di compressione dei dati.
Dati HTTP
- La lunghezza del contenuto è espressa in byte.
- Il tipo di contenuto è definito da una codifica, ad esempio: text/plain, text/html, audio/mp3.
- La data di scadenza della pagina è specificata dal campo Expires.
- Il campo Last-Modified indica la data dell'ultima modifica della risorsa in un formato specifico, come quello definito per le email.
- Il formato ufficiale per Last-Modified è: tre caratteri per il giorno della settimana, due per il giorno del mese, tre per il mese, quattro per l'anno, e due per ora, minuti, secondi, seguiti dal fuso orario (generalmente GMT).
Wireshark
- Wireshark è uno strumento per analizzare i pacchetti di rete come HTTP, TCP e IP.
- Permette di osservare le trasmissioni di rete, sia via cavo che Wi-Fi, acquisendo i pacchetti direttamente dalla scheda di rete.
- Le schede di rete possono essere impostate in "modalità promiscua" (per schede cablate) o "monitor mode" (per schede wireless) per acquisire tutti i pacchetti in transito.
- Wireshark è disponibile per vari sistemi operativi e permette di scegliere la scheda di rete da monitorare.
- È possibile applicare filtri per selezionare solo il traffico di interesse, ad esempio filtrare il traffico HTTP o TCP.
Interfaccia di Wireshark
- L'interfaccia utente di Wireshark è divisa in tre aree:
- Elenco dei pacchetti catturati: mostra una lista dei pacchetti in modo sintetico.
- Dettagli del pacchetto selezionato: suddivide il pacchetto nei vari livelli del protocollo (ad esempio HTTP, TCP, IP).
- Visualizzazione in esadecimale o bit per bit: mostra i dati grezzi del pacchetto.
Filtri in Wireshark
- I filtri di cattura vengono impostati a priori per acquisire solo il traffico che soddisfa certe condizioni.
- I filtri di visualizzazione vengono applicati ai dati già acquisiti per concentrarsi su determinati aspetti.
- La sintassi dei filtri di cattura e di visualizzazione è diversa.
- I filtri di visualizzazione usano una sintassi simile a quella di JavaScript o PHP, usando la doppia e commerciale (&&) per AND, il punto esclamativo (!) per NOT, e le due linee verticali (||) per OR.
Esempio di utilizzo di Wireshark
- Per analizzare il traffico HTTP di un sito, come example.com, è possibile avviare Wireshark e selezionare la scheda di rete corretta.
- È possibile filtrare i pacchetti HTTP per visualizzare solo il traffico relativo al sito.
- Gli header HTTP forniscono informazioni dettagliate sul traffico, come l'host, la connessione, l'user-agent e il tipo di codifica.
- Wireshark permette di visualizzare il codice sorgente HTML della pagina web ricevuta dal browser.
### Come viene mantenuto lo stato in HTTP
- L'HTTP è un protocollo stateless, cioè non conserva informazioni sulle richieste precedenti.
- Per gestire lo stato, si utilizzano meccanismi come i cookie e le sessioni.
- I cookie sono piccoli pezzi di dati inviati dal server al client e memorizzati dal browser.
- Le sessioni sono meccanismi lato server per conservare lo stato di un utente durante una sessione.
Direttive Include e Require
- Le direttive
include
erequire
permettono di includere un file PHP all'interno di un altro. - La differenza è che
include
genera solo un warning se il file non viene trovato, mentrerequire
genera un errore fatale e interrompe l'esecuzione del codice. - Esistono anche le varianti
include_once
erequire_once
, che verificano se il file è già stato incluso per evitare inclusioni ripetute.
Funzioni in PHP
- Le funzioni in PHP sono case-insensitive.
- La sintassi è simile ad altri linguaggi di programmazione.
- Le funzioni possono ricevere parametri e restituire un valore.
Header HTTP
- La funzione
header()
in PHP permette di manipolare gli header HTTP. - Possiamo modificare il tipo di contenuto, reindirizzare l'utente, impostare cookie, ecc.
### Variabili Globali
- Le variabili definite all'esterno delle funzioni hanno uno scope globale.
- È preferibile passare i dati tramite parametri di funzione, invece di usare la keyword
global
all'interno delle funzioni. - PHP offre degli array super globali come
$_GET
,$_POST
, e$_SERVER
. - L'array
$_SERVER
contiene informazioni sull'ambiente in cui gira il server web, incluse le variabili HTTP.
phpinfo()
- La funzione
phpinfo()
visualizza una lista dettagliata di informazioni sul server, le configurazioni e l'ambiente.
I Cookie
- I cookie sono piccoli blocchi di dati inviati dal server al browser e memorizzati localmente.
- Quando il browser torna al server, questi dati vengono inviati automaticamente.
- I cookie fungono da meccanismo di scambio dati tra browser e server, ma con uno scopo diverso rispetto alle normali richieste.
- Servono a mantenere traccia delle informazioni, come l'identificazione di un utente autenticato.
- Possono essere utilizzati anche per memorizzare le preferenze dell'utente, come le impostazioni dell'interfaccia utente.
Gestione dei Cookie in PHP
- PHP gestisce i cookie attraverso un array associativo chiamato
$_COOKIE
. - Ogni cookie è memorizzato con il suo nome come chiave dell'array e il suo valore come contenuto associato.
- Per leggere un cookie, si usa la seguente funzione
$_COOKIE['nome_cookie']
.
Creazione dei Cookie
- Per creare un cookie, si usano le funzioni
setcookie()
esetrawcookie()
. -
setcookie()
invia i dati in formato standard, mentresetrawcookie()
invia i dati senza modificarle o ri codificarli. - La maggior parte dei casi utilizza
setcookie()
.
Parametri della Funzione setcookie()
-
nome
: Il nome del cookie, obbligatorio. -
valore
: Il valore del cookie, opzionale. -
scadenza
: Indica il tempo di vita del cookie in secondi dall'epoca Unix (1 gennaio 1970). -
percorso
: Il percorso all'interno del server per cui il cookie è valido. -
dominio
: Il dominio per cui il cookie è valido. -
secure
: Un flag che indica se il cookie deve essere trasmesso solo tramite una connessione sicura (HTTPS). -
httpOnly
: Se impostato a true, il cookie può essere utilizzato solo tramite protocollo HTTP e non può essere accessibile tramite JavaScript.
Esempio Completo di Utilizzo di setcookie()
setcookie('nome_cookie', 'valore', time() + 3600, '/', 'www.polito.it', true, true);
- Il cookie
nome_cookie
avrà il valore "valore" ed avrà una durata di 1 ora. - Sarà valido per il dominio
www.polito.it
e per tutti i percorsi del sito. - Sarà inviato solo tramite HTTPS e sara accessibile solo tramite protocolli HTTP.
Lettura dei Cookie
if(isset($_COOKIE['nome_cookie'])) {
echo $_COOKIE['nome_cookie'];
}
- Questo frammento di codice verifica l'esistenza del cookie
nome_cookie
e ne stampa il valore se esiste.
Importanza di Scadenza, Percorso e Dominio
- La scadenza del cookie è importante per determinare quando si vuole che venga eliminato.
- Specificare un percorso e un dominio appropriati è fondamentale per evitare che il cookie sia accessibile da altre parti del server che non ne hanno bisogno.
Considerazioni Importanti
- Le funzioni come
setcookie()
eheader()
devono essere utilizzate prima di qualsiasi output HTML. - Se queste funzioni vengono utilizzate dopo l'output HTML, si verifica un errore in quanto l'header HTTP è già stato inviato.
Sommario
I cookie sono uno strumento potente per mantenere lo stato tra il server e il client, consentendo di memorizzare informazioni persistenti nel browser dell'utente.
Unix Epoch e Funzioni Time() e Mktime()
- La Unix Epoch è il punto di riferimento da cui si calcolano i secondi in PHP.
- Le funzioni
time()
emktime()
restituiscono il numero di secondi trascorsi dalla Unix Epoch (1 gennaio 1970) fino all'istante corrente. -
time()
restituisce i secondi passati fino al momento attuale. -
mktime()
permette di specificare una data futura e restituisce i secondi trascorsi dalla Unix Epoch fino a quella data. - Utilizzando queste funzioni, si può gestire la scadenza dei cookie, ad esempio, impostando un cookie che scade in un'ora:
setcookie('nome_cookie', 'valore', time() + 3600);
Utilizzo dei Cookie
- I cookie sono informazioni memorizzate sul computer dell'utente dal server web.
- Sono utilizzati per ricordare preferenze, dati di login e altre informazioni.
- La funzione
setcookie()
serve per impostare un cookie. -
setcookie('nome', $_POST['your_name'], time() + 86400);
imposta un cookie chiamato "nome" con valore preso dal form e una durata di 24 ore. - Se la scadenza di un cookie è già trascorsa, il browser lo elimina.
- Per accedere ai cookie, si utilizza l'array
$_COOKIE
. -
if (isset($_COOKIE['nome'])) { echo 'Ciao '.$_COOKIE['nome']; }
controlla se il cookie "nome" esiste e, se sì, stampa un messaggio di saluto.
Funzionamento dei Cookie in HTTP
- I cookie vengono inviati dal server al browser quando il browser richiede una pagina web.
- Il browser memorizza i cookie localmente e li invia nuovamente al server con ogni richiesta successiva.
- La presenza di cookie in una richiesta HTTP viene indicata nell'header
Cookie
, ad esempio:Cookie: nome=Andrea; cognome=Rossi
. - La prima volta che si impostano cookie, potrebbero non essere letti correttamente perché il server deve prima inviarli al browser.
Cookie: Il fondamento della gestione dello stato in web
- I cookie risolvono il problema della natura stateless del protocollo HTTP, che non è in grado di memorizzare le azioni passate dell'utente.
- L'uso di cookie permette di conservare informazioni sullo stato utente in modo persistente, anche se l'utente si disconnette, chiude il browser o il server subisce dei riavvii.
- L'istruzione setcookie() in PHP imposta un cookie, mentre l'array $_COOKIE contiene i cookie già inviati al server.
- Per impostare una scadenza per un cookie, si può usare la funzione mktime() in PHP per specificare una data futura.
- È possibile eliminare un cookie impostando una data passata.
- I cookie sono memorizzati sul dispositivo dell'utente, quindi possono essere letti da altre applicazioni.
- La sicurezza dei cookie è fondamentale per prevenire l'intercettazione di dati sensibili tramite attacchi man-in-the-middle.
- Un uso eccessivo dei cookie può comportare problemi di privacy, in quanto le informazioni sulle attività degli utenti possono essere tracciate tra siti.
- La maggior parte dei browser offre opzioni per cancellare i cookie e limitarne l'utilizzo.
- I cookie spostano la gestione dello stato dal server al client, riducendo il carico del server, ma rendendo il sistema meno sicuro.
Creazione e Trasmissione dei Cookie
-
I cookie vengono creati sul client tramite la direttiva
Set-Cookie
nell'header HTTP inviato dal server. -
La direttiva
Set-Cookie
ha il seguente formato:Set-Cookie: nome_cookie=valore_cookie;
-
È possibile inviare più direttive
Set-Cookie
separate da virgole, ad esempio:Set-Cookie: myName=Andrea, myFamilyName=Verdi;
-
I cookie vengono memorizzati nel file system del dispositivo dell'utente.
-
Quando il client effettua richieste successive al server, i cookie vengono ritrasmessi utilizzando la direttiva
Cookie
con il formato:Cookie: nome_cookie=valore_cookie;
Memorizzazione dei Cookie
-
La modalità di memorizzazione dei cookie varia a seconda del browser.
-
Alcuni browser li salvano in file separati per ogni sito web o utente, mentre altri li archiviano in un database SQLite o in una cartella dedicata.
Dimensioni dei Cookie
-
I cookie sono tipicamente di piccole dimensioni.
-
I browser devono gestire cookie di almeno 4 KB e supportare un minimo di 300 cookie.
-
Ogni server può gestire fino a 20 cookie per client, con un limite complessivo di 80 KB per client.
Formato della Direttiva Set-Cookie
-
La direttiva
Set-Cookie
contiene i seguenti campi:- Nome: il nome del cookie.
- Valore: il valore del cookie.
- Scadenza: data di scadenza del cookie (opzionale).
- Dominio: dominio a cui il cookie si applica (opzionale).
- Percorso: specifica il percorso per il quale il cookie è valido (opzionale).
- Sicuro: il cookie viene trasmesso solo su connessioni HTTPS (opzionale).
- HTTP Only: previene l'accesso al cookie tramite JavaScript (opzionale).
Caratteri Speciali nei Cookie
- I caratteri speciali nei cookie, come virgole, punti e virgola o spazi, devono essere codificati utilizzando una codifica simile a quella delle URL (ad esempio, la virgola dovrebbe essere codificata come %2C).
Scadenza dei Cookie
- I cookie senza una data di scadenza sono temporanei e vengono eliminati alla chiusura del browser.
Trasmissione Sicura dei Cookie
-
Il flag
secure
assicura che il cookie venga trasmesso solo su connessioni HTTPS. -
Il dominio e il percorso del cookie sono opzionali e, se non specificati, il browser userà quelli della URL che ha generato il cookie.
Lato Client: Trasmissione dei Cookie al Server
-
I cookie vengono ritrasmessi al server nelle successive richieste HTTP, se la URL è compatibile con i valori di dominio e percorso del cookie.
-
In PHP, i cookie ritrasmessi possono essere letti tramite l'array associativo
$_COOKIE
.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Scopri le basi di PHP, un linguaggio di scripting open source utilizzato per lo sviluppo di pagine web dinamiche. Questo quiz esplora le funzionalità e le applicazioni di PHP, inclusa la sua esecuzione server-side e localmente. Metti alla prova le tue conoscenze su PHP e il suo utilizzo nella programmazione moderna.