- Parleremo un po' di networking.
- Esamineremo l'architettura client-server ea tre livelli.
- Esploreremo i protocolli HTTP/HTTPS.
- Impareremo tutto ciò che devi sapere su Maven.
- Stiamo parlando di registrazione.
- Informazioni sui contenitori servlet.
- E infine, su MVC.
Parte 1. Parleremo un po' di networking.
Cominciamo con ciò che conta di più parlando di ciò su cui è costruito ogni social network, servizio web e app web, messaggistica istantanea e semplice sito Web: la rete (nel contesto di questa serie di articoli, il termine "rete" significa Internet ) . La rete è costituita da un numero enorme di computer: sono interconnessi e in grado di comunicare. È importante capire come lo fanno, perché le applicazioni web inviano informazioni da un computer all'altro.Modello OSI
Il modello Open Systems Interconnection (OSI) crea un approccio a più livelli per costruire una rete. Mostra chiaramente come ea quale livello le entità della stessa rete possono interagire tra loro. In tutto, questo modello contiene 7 livelli:7 | Applicazione |
6 | Presentazione |
5 | Sessione |
4 | Trasporto |
3 | Rete |
2 | Collegamento dati |
1 | Fisico |
-
Strato fisico : questo strato si occupa delle leggi della fisica e di come usarle per i nostri scopi. Ad esempio, creando cavi e posandoli alle entità nella rete.
Questo strato non ci interessa.
-
Livello di collegamento dati : questo livello è responsabile della trasmissione dei dati ai nodi di rete e della creazione di canali di trasmissione dati per oggetti fisici.
Questo livello non ci interessa a meno che tu non voglia scrivere firmware per l'hardware che stabilisce i collegamenti dati.
-
Livello di rete : questo livello serve a determinare gli indirizzi dei singoli utenti di rete e le rotte verso di essi. È utile saperne di più sui dettagli di questo livello, vale a dire gli indirizzi di rete.
Gli indirizzi di rete sono definiti da un protocollo speciale: il più comune è IPv4 (Internet Protocol versione 4). Questo è il protocollo che un programmatore web deve utilizzare per contattare un altro utente della rete.
Un indirizzo IPv4 è costituito da valori di quattro byte separati da punti, ad esempio: 192.0.2.235. Dovresti ricordare che questi valori sono byte, il che significa che si trovano all'interno dell'intervallo 0..255.
Gli indirizzi IP, a loro volta, sono divisi in classi. Non possiamo semplicemente assegnarci una bella combinazione di numeri, ma qui non andremo molto in profondità. Basta capire che un indirizzo IP identifica univocamente un utente della rete e può essere utilizzato per contattare quell'utente.
-
Livello di trasporto : questo livello gestisce la consegna di informazioni a un destinatario. A tale scopo vengono utilizzati vari protocolli. Per ora non ci interessano. Siamo molto più interessati al concetto di porta , che appare a questo livello.
Le porte sono responsabili dell'identificazione di un'applicazione specifica su un computer. Ad esempio, supponi di scrivere un'app di chat in Java, di installarla su 2 computer e di voler inviare un messaggio al tuo amico. Il tuo messaggio viene impacchettato, inviato a un indirizzo IP specifico e consegnato al tuo amico, ma il suo computer non sa cosa fare con le informazioni ricevute, perché non capisce quale applicazione dovrebbe elaborare il tuo messaggio. Quando le entità di rete comunicano, le porte vengono utilizzate per indicare quale applicazione deve elaborare le informazioni.
La porta è un numero compreso tra 0 e 65535. Viene aggiunto all'indirizzo IP dopo i due punti: 192.0.2.235:8080 . Ma non è possibile utilizzare tutte le porte nell'intervallo specificato: alcune sono riservate al sistema operativo, altre sono abitualmente utilizzate per scopi specifici. Non approfondiremo gli scopi dei diversi porti. Per ora basta capire il loro ruolo nel processo di comunicazione in rete.
-
Livello di sessione : questo livello crea e gestisce le sessioni di comunicazione. A questo livello, diventa possibile per le applicazioni interagire, inviando richieste a livello di servizio. Quello che dobbiamo sapere è che a questo livello viene aperta una sessione tra due utenti e dobbiamo lavorare con la sessione.
Una sessione è un'entità creata quando viene stabilita una connessione tra due utenti. Può memorizzare le informazioni necessarie su un utente e sulla cronologia dell'interazione con l'utente. Un dettaglio importante è che quando lo scambio di informazioni si interrompe, la sessione non scompare. Al contrario, mantiene il suo stato per un determinato periodo di tempo, in modo che gli utenti possano continuare a scambiarsi informazioni dopo un'interruzione.
Se un'applicazione comunica con più utenti contemporaneamente, viene stabilito un numero corrispondente di connessioni (e quindi di sessioni). Ogni sessione ha un identificatore univoco (ID) , che consente all'applicazione di distinguere tra gli utenti con cui sta comunicando.
-
Livello di presentazione : questo livello è responsabile della codifica/decodifica dei dati. Ovviamente, se dobbiamo inviare la stringa "Ciao web" ad un altro utente, questa viene prima convertita in codice binario (codificata come) e solo successivamente viene inviata. Una volta raggiunto il destinatario, il messaggio viene riconvertito (decodificato) e il destinatario può vedere la stringa originale. Queste azioni si svolgono a livello di presentazione.
-
Il livello dell'applicazione è il livello più interessante per noi. Consente alle applicazioni di comunicare con la rete. A questo livello, riceviamo e inviamo messaggi ed effettuiamo richieste a servizi e database remoti.
Esistono molti protocolli utilizzati a questo livello: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET e, ovviamente, HTTP/HTTPS. Un protocollo è un accordo universale a cui ci atteniamo durante la comunicazione. Forniremo sicuramente una discussione dettagliata separata su HTTP/HTTPS.
- Indirizzo IP: l'indirizzo dell'utente nella rete
- Porta: l'indirizzo dell'applicazione di un utente specifico
- Sessione — Un'entità che esiste per tutto il periodo di comunicazione tra due utenti
- Protocolli applicativi (HTTP/HTTPS): si tratta di regole che seguiremo durante la composizione e l'invio di messaggi.
GO TO FULL VERSION