CodeGym /Java Blog /Random-IT /Parte 1. Cosa devi sapere prima di imparare Spring e Java...
John Squirrels
Livello 41
San Francisco

Parte 1. Cosa devi sapere prima di imparare Spring e JavaEE

Pubblicato nel gruppo Random-IT
Se hai già finito (o sei vicino a) imparare Java SE, allora è il momento di pensare ai tuoi prossimi passi per conquistare la professione di sviluppatore Java. Parte 1. Cosa devi sapere prima di imparare Spring e JavaEE - 1 Da un lato hai già una buona conoscenza di Java: sai come lavorare con un IDE, scrivere programmi e molto altro. Ma cosa dovresti fare dopo con i tuoi programmi? Come renderli ancora più cool e "scatenarli nel mondo"? Sta diventando ovvio che è tempo di intraprendere lo studio delle tecnologie aziendali. E ora inizia il divertimento. Non importa con quale stack tecnologico decidi di iniziare. Che si tratti di JavaEE o Spring, è probabile che ti imbatterai in un sacco di cose che vanno molto, molto oltre la tua comprensione. Tra le basi di Java e le tecnologie avanzate rimane un passaggio intermedio nella conoscenza che deve essere compiuto per mantenere ciò che rimane del tuo autocontrollo e fiducia in te stesso mentre leggi la voluminosa documentazione. Perciò,è darti le conoscenze teoriche minime necessarie per il tuo ulteriore studio di JavaEE o Spring. Questo materiale è diviso in 7 parti:
  1. Parleremo un po' di networking.
  2. Esamineremo l'architettura client-server ea tre livelli.
  3. Esploreremo i protocolli HTTP/HTTPS.
  4. Impareremo tutto ciò che devi sapere su Maven.
  5. Stiamo parlando di registrazione.
  6. Informazioni sui contenitori servlet.
  7. 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
La suddivisione del modello in livelli di astrazione consente agli sviluppatori che lavorano sul livello di trasporto, ad esempio, di non dover pensare ai dettagli di implementazione a livello di rete e livelli di sessione. Questo approccio è utilizzato anche nella programmazione. Consideriamo tutti i livelli del modello OSI e determiniamo quali sono di nostro interesse:
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

Parte 1. Cosa devi sapere prima di imparare Spring e JavaEE - 2Non abbiamo bisogno di sapere come funziona ogni strato del modello. La cosa principale è capire i principi alla base del funzionamento degli elementi con cui dovremo lavorare durante la scrittura di applicazioni web, vale a dire:
  • 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.
Quando visitiamo un negozio online, ad esempio, ne indichiamo l'indirizzo e la porta. Alla nostra prima visita, viene creata una sessione. Il negozio può registrare informazioni nella sessione. Ad esempio, il negozio potrebbe salvare le informazioni sugli articoli che abbiamo lasciato nel carrello. Se chiudiamo la scheda con il negozio online e poi ci ritorniamo in un secondo momento, i nostri articoli saranno ancora nel carrello perché vengono salvati nella sessione. Naturalmente, tutte le informazioni che riceviamo dal negozio le riceviamo tramite il protocollo HTTP/HTTPS e il nostro browser sa come elaborarle. Potresti obiettare, dicendo che non hai mai inserito l'indirizzo e la porta nel browser, e in parte avresti ragione. Quello che hai fatto è stato inserire il nome del dominio, che è stato convertito da un server DNS. Diamo un'occhiata meglio a cosa c'è qui.

DNS (Domain Name System)

Come abbiamo già appreso, ogni utente della rete ha un indirizzo univoco. Se stiamo parlando dell'applicazione, il suo indirizzo univoco sarà IPv4-address:port . Se conosci questo indirizzo, puoi accedere direttamente all'applicazione. Immagina di aver scritto un'applicazione web che mostra la temperatura media dell'aria in tutti i paesi in tempo reale. Lo abbiamo implementato su un server con l'indirizzo 226.69.237.119, sulla porta 8080. Per poter ricevere informazioni da noi, l'utente deve inserire 5 numeri nel browser: 226.69.237.119:8080. Alla gente non piace memorizzare gruppi di numeri: molti di noi non riescono a ricordare più di due numeri di telefono. Ecco perché il Domain Name Systemè stato inventato. Possiamo creare un "alias" per il nostro indirizzo, ad esempio, world-temperature.com. Invece di cercarci utilizzando un indirizzo composto da cinque numeri difficili da ricordare, l'utente può inserire il nostro nome di dominio nella barra degli indirizzi del browser. Esistono server DNS che mappano i nomi di dominio su indirizzi reali. Ad esempio, quando un utente inserisce codegym.cc in un browser, la sua richiesta viene inviata a un server DNS, che la converte nell'indirizzo effettivo. Parte 1. Cosa devi sapere prima di imparare Spring e JavaEE - 4Questo è importante per noi da capire, perché le nostre applicazioni chiameranno servizi remoti sia con nomi di dominio che con indirizzi reali. Dobbiamo capire che in entrambi i casi i servizi sono gli stessi. Questo è tutto per ora! In questo articolo, abbiamo esaminato le basi del networking, che ti torneranno utili quando inizi a imparare la programmazione web.La prossima volta vedremo cos'è un'architettura client-server e perché è così importante capire. Parte 2. Parliamo un po' dell'architettura software Parte 3. HTTP/HTTPS Parte 4. Le basi di Maven Parte 5. Servlet e Java Servlet API. Scrivere una semplice applicazione web Parte 6. Contenitori servlet Parte 7. Introduzione al pattern MVC (Model-View-Controller)
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION