WEB SERVER

  • Un Web Server è un server che fornisce servizi sul Web

  • Per comunicare con il client usa i protocolli HTTP o HTTPS

  • Elabora le richieste in arrivo dai client (HTTP request)

  • Invia al client il risultato dell’elaborazione (HTTP response):

    • La richiesta può consistere in una semplice risorsa statica già esistente sul server (una pagina HTML, un’immagine, ecc.). In questo caso la risorsa viene semplicemente inviata al client.

    • In molti casi la richiesta presuppone la creazione della risorsa. In questo caso il web server esegue un programma e invia al client il risultato dell’elaborazione.

  • In ogni caso ciò che arriva la client e una risorsa web standard: una pagina web completa (HTML/CSS/Javascript) o un suo componente.

BROWSER

  • Un Web browser è un HTTP client.

  • È un programma, cioè, che interagisce con un HTTP server, richiedendone i servizi.

  • Riceve i dati dal server e li ricompone

  • Visualizza i risultati inviati dal server come pagine Web, mostrandone il contenuto e interpretando correttamente i linguaggi che vengono utilizzati per descriverne i contenuti

  • Esegue programmi scritti in Javascript elaborando dati, coè, senza necessariamente coinivolgere il server.

 LE APPLICAZIONI WEB

  • Quindi programmare per il web significa scrivere due applicazioni in grado di comunicare tra loro. Oggi si parla di:

  • Progettazione e programmazione Front End

    • l’applicazione client che invia richieste (e interpreta le risposte)

  • Progettazione e programmazione Back End

    • l’applicazione server che riceve le richieste dell’applicazione client, prepara le risposte e le invia al client.

L’ELEMENTO FORM

  • L’elemento HTML Form, identificato dal tag <form></form> è uno degli elementi fondamentale nella costruzione della interattività di una pagina web e consente di inviare un gruppo di dati inseriti dall’utente al server. È quindi l’elemento fondamentare nella costruzione di una applicazione client-server.
  • L'elemento <form> può contenere uno o più dei seguenti elementi del modulo:

    • <input>, <textarea>, <button>, <select>, <option>, <optgroup>, <fieldset>,

      <label>

  • Oltre agli attributi che condividono con tutti gli altri elementi HTML (id, class, style) l’elemento form e gli elementi contenuti in un form hanno attributi specifici legati alla loro funzione di trasmissione dei dati. I più importanti sono:

    • method e action (attributi dell’elemento form)

    • name e value (attributi degli elementi contenuti)

Attributo ACTION

  • L' attributo action definisce l'azione da eseguire quando il form viene inviato.

  • Normalmente, il modulo viene inviato ad una pagina web dinamica contenete cioè un programma eseguibile dal server.

  • Se scrivo:

    <form action="action_page.php">

  • Verrà eseguito lo script server «action_page.php» e il risultato dell’elaborazione verrà inviato al client.

Attributo METHOD

  • L' attributo method specifica il metodo HTTP ( GET o POST ) da utilizzare per inviare i dati:

    <form action="action_page.php" method="get">

  • o:

    <form action="action_page.php" method=“post">

  • Quando si utilizza GET, i dati del modulo saranno visibili nell’url della pagina e non potranno superare i 2Kb:

Attributi NAME e VALUE

 

  • L' attributo name specifica il nome con cui il dato inviato sarà identificato nell’elaborazione lato server:

    <input id="q" name="q" value="">

  • L' attributo value  specifica il valore iniziale che contiene il campo specificato

    <input id="origin" type="hidden" name="o" value="0">

INPUT

  • L’elemento <input> elemento è il più importante del <form> e in origine indica un generico elemento in grado interagire con l’utente .

  • La sua funzione è determinato dal valore che assume l’attributo type che, quindi è obbligatorio.

    • <input type = "text"> definisce un campo di input di una riga per l'immissione di testo.

    • <input type = "password"> definisce un campo password (come sopra ma le lettere immesse non sono visibili)

    • <input type = "radio"> definisce un pulsante di scelta esclusiva tra più opzioni alternative che hanno lo stesso attributo name:

    • <type = "checkbox" input> definisce una casella di controllo. Le caselle di controllo lasciare che un utente seleziona zero o più opzioni di un numero limitato di scelte.

    • <input type = "submit"> definisce un pulsante che invia i dati.

    • <input type = "reset"> definisce un pulsante che azzera i dati immessi.

    • <input type = "button"> definisce un pulsante generico, che normalmente lancia un programma lato client.

  • Per type = submit|reset|button l’attributo value definisce l’etichetta che vene mostrata sul pulsante.

TEXTAREA

  • Il tag <textarea> definisce un controllo di input di testo multilinea.

  • Un'area di testo può contenere un numero illimitato di caratteri.

  • Per default il testo viene reso in un font a larghezza fissa (di solito Courier).

BUTTON

  • Il tag <button> definisce un pulsante cliccabile.

  • Contrariamente che per l'elemento input all'interno di un elemento <button> Posso inserire qualsiasi tipo di contenuto.

  • L’attributo type può assumere i valori: submit, button e reset che hanno lo stesso significato che per l’elemento input-

SELECT

  • L'elemento <select> viene utilizzato per creare un elenco a discesa.

  • I tag <option> all'interno dell'elemento <select> definiscono le opzioni disponibili nella lista.

JAVASCRIPT

  • JavaScript è un linguaggio di programmazione.

     

PROGRAMMA È

  • Una serie di istruzioni che il computer è in grado di eseguire

  • Che elaborano DATI (INPUT)

  • Per risolvere un problema implementando un algoritmo

  • E ottenere un risultato (OUTPUT)

COSA È UN LINGUAGGIO DI PROGRAMMAZIONE

  • E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.

  • Serve a facilitare la programmazione dei calcolatori rendendo possibile descrivere gli algoritmi e le strutture dei dati in una forma più vicina a quella del linguaggio umano scritto.

  • A seconda del metodo utilizzato per tradurre il testo delle istruzioni in linguaggio macchina vengono suddivisi in due categorie: compilati e interpretati.

LINGUAGGI C OMPILATI

  • Il sorgente (un file di testo con le operazioni da eseguire) viene compilato in codice macchina e viene impacchettato in un particolare file detto eseguibile che il computer è in grado di eseguire direttamente senza bisogno di altro software;

  • È specifico di un determinato sistema operativo e la compatibilità tra sistemi diversi può essere garantita solo dal fatto che esistano compilatori specifici per ogni sistema.

LINGUAGGI S EMICOMPILATI

  • Per semplificare la gestione della compatibilità non si compila il sorgente per uno specifico ambiente ma per una macchina virtuale.

  • Per essere eseguiti i programmi presuppongono che la macchiana virtuale sia installata.

COMPILATO <> INTERPRETATO

  • compilazione:

    • lo script viene elaborato dal compilatore prima di essere eseguito e la maggior parte degli errori di sintassi vengono individuati

  • interpretazione

JAVASCRIPT

  • Script in inglese significa "copione" o "sceneggiatura",.

  • Il browser legge una riga, la interpreta e la esegue, poi passa alla successiva e fa la stessa cosa, e così di seguito fino alla fine dello script.

  • Javascript è un linguaggio interpretato

  • L’interprete utilizzato per eseguirlo è il browser

  • è in grado di leggere e scrivere gli elementi HTML.

  • Tramite JavaScript è possibile modificare la struttura del documento HTML in tempo reale, senza interagire con il server

  • può essere utilizzato per convalidare i dati inseriti dall'utente prima di inviarli al server.

  • può essere utilizzato per avere informazioni sul Browser del visitatore.

     

  • In questo modo possiamo decidere come comportarci a seconda del Browser che sta leggendo la pagina

  • può essere utilizzato per creare i cookie e quindi archiviare e recuperare informazioni sul computer del visitatore

ESEMPI

 http://codepen.io/magicbruno/