JavaRush /Java Blog /Random-IT /Parte 1. Cosa devi sapere prima di imparare Spring e Java...

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

Pubblicato nel gruppo Random-IT
Se hai già completato lo studio di Java SE o ci sei vicino, è tempo di pensare ai prossimi passi per conquistare la professione di sviluppatore Java. Parte 1. Cosa devi sapere prima di imparare Spring e JavaEE - 1Da un lato hai già una buona conoscenza di Java: sai come lavorare con l'IDE, scrivere programmi e molto altro ancora. Ma cosa dovremmo fare adesso con loro, i programmi? Come renderli più interessanti e “rilasciarli nel mondo”? Diventa ovvio che è ora di iniziare a studiare le tecnologie Enterprise. Ed è qui che inizia il divertimento. Non importa con quale stack tecnologico decidi di iniziare. Che si tratti di JavaEE o Spring, probabilmente ti imbatterai in molte cose che vanno ancora oltre la tua comprensione. Tra le basi di Java e le tecnologie avanzate c'è ancora un livello intermedio di conoscenza che ti aiuterà a non perdere i resti di autocontrollo e fiducia in te stesso durante la lettura di documentazione voluminosa. Pertanto, lo scopo di questa serie di articoli è fornire le conoscenze teoriche minime necessarie per ulteriori studi su JavaEE o Spring. Tutto il materiale è diviso in 7 parti:
  1. Parliamo un po' della rete.
  2. Consideriamo la struttura dell'architettura client-server e a tre livelli.
  3. Diamo un'occhiata ai protocolli HTTP/HTTPS.
  4. Impariamo tutto ciò che devi sapere su Maven.
  5. Parliamo di servlet.
  6. Contenitori servlet.
  7. E infine - su MVC.

Parte 1. Parliamo un po' della rete

Cominciamo con la cosa più importante e parliamo della base su cui sono costruiti tutti i social network, i servizi e le applicazioni web, la messaggistica istantanea e i siti semplici: la rete ( nel contesto di questa serie di articoli, il termine "rete" significa l'Internet globale ). Una rete è composta da un numero enorme di computer: sono interconnessi e in grado di comunicare. È importante capire come lo fanno, perché le applicazioni web sono responsabili del trasferimento delle informazioni da un computer all'altro.

Modello di rete OSI

Il modello OSI (Open Systems Interconnection) crea un approccio a più livelli per costruire una rete. Mostra chiaramente come e a quale livello i membri della stessa rete possono interagire tra loro. In totale, questo modello contiene 7 livelli:
7 Applicato
6 Rappresentazione
5 Sessione
4 Trasporto
3 Rete
2 Condotto
1 Fisico
La suddivisione in livelli di astrazione consente agli specialisti che lavorano, ad esempio, sul livello di trasporto, di non pensare ai dettagli dell'implementazione della rete a livello di rete e di sessione. Questo approccio viene utilizzato anche nella programmazione. Diamo un'occhiata a tutti i livelli del modello OSI e scopriamo quali di essi sono interessanti per noi:
  1. 1. Livello fisico : qui le leggi della fisica svolgono il loro lavoro e il compito dell'uomo è quello di utilizzarle e dirigerle per i propri scopi. Ad esempio, creando cavi e posandoli ai membri della rete.

    Non siamo interessati.

  2. Livello di collegamento dati : responsabile della trasmissione dei dati ai nodi della rete e della creazione di canali di trasmissione dati su oggetti fisici.

    Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.

  3. Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.

    Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.

    IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.

    IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.

  4. Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.

    Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.

    Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.

  5. Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.

    Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.

    Se un'applicazione comunica con più utenti contemporaneamente, viene stabilito un numero adeguato di connessioni, e quindi di sessioni. Ogni sessione è dotata di un identificatore univoco (ID) , che consente all'applicazione di distinguere tra gli utenti con cui avviene la comunicazione.

  6. Livello di presentazione : responsabile della codifica/decodifica dei dati. Ovviamente, se dobbiamo inviare la stringa “Hello web” ad un altro utente, questa viene prima convertita (codificata) in codice binario, e solo successivamente inviata. Una volta giunto a destinazione, il messaggio viene riconvertito (decodificato) e il destinatario può vedere la stringa originale. Queste azioni si verificano a livello di presentazione.

  7. Il livello dell'applicazione è quello più interessante per noi. Consente alle applicazioni di interagire con la rete. A questo livello riceveremo, invieremo messaggi, faremo 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 aderiamo durante la composizione dei messaggi. Parleremo sicuramente dei protocolli HTTP/HTTPS separatamente e in modo più dettagliato.

Parte 1. Cosa devi sapere prima di imparare Spring e JavaEE - 2 Non abbiamo bisogno di sapere come funziona ciascun livello di questo modello. La cosa principale è comprendere i principi di funzionamento degli elementi con cui dovremo confrontarci durante la scrittura di applicazioni web, ovvero:
  • Indirizzo IP: l'indirizzo dell'abbonato sulla rete;
  • Porta: indirizzo dell'applicazione di un abbonato specifico;
  • La sessione è un'entità che esiste durante l'intera comunicazione tra due abbonati;
  • I protocolli applicativi (HTTP/HTTPS) sono le regole che ci guideranno durante la composizione e l'invio dei messaggi.
Quando andiamo, ad esempio, a un negozio online, indichiamo l'indirizzo e la porta della sua posizione. Alla tua prima visita, viene creata una sessione in cui il negozio può registrare le informazioni. Ad esempio, riguardo alla merce che abbiamo lasciato nel carrello. Se chiudiamo la scheda del negozio online e poi torniamo ad essa, i nostri prodotti rimarranno nel carrello perché salvati nella sessione. Ebbene, ovviamente, riceviamo tutte le informazioni che riceviamo dal negozio tramite il protocollo HTTP/HTTPS e il nostro browser può elaborarle. Potete obiettare che non avete mai inserito l'indirizzo e la porta nel browser, e in parte avrete ragione, perché avete inserito il nome del dominio che è stato convertito sul server DNS. Ma qui, diamo uno sguardo migliore a cosa è cosa.

DNS (sistema dei nomi di dominio)

Come abbiamo già scoperto, ogni abbonato sulla rete ha un indirizzo univoco. Se parliamo di un'applicazione, il suo indirizzo univoco sarà IPv4:port . Conoscendo questo indirizzo è possibile accedere direttamente all'applicazione. Immaginiamo di aver scritto un'applicazione web che mostri in tempo reale la temperatura media dell'aria in tutti i paesi. Lo abbiamo implementato su un server con l'indirizzo 226.69.237.119 e sulla porta 8080. Affinché l'utente possa ricevere informazioni da noi, deve inserire 5 numeri nel browser: 226.69.237.119:8080. Alla gente non piace ricordare serie di numeri: non tutti ricordiamo più di due numeri di telefono. Ecco perché è stato inventato il sistema dei nomi di dominio . Possiamo creare un "alias" per il nostro indirizzo, ad esempio world-temperature.com, e invece di cercarci utilizzando un indirizzo di cinque cifre, l'utente può digitare il nostro nome di dominio nella barra degli indirizzi del browser. Per abbinare nomi di dominio e indirizzi reali, esistono server DNS . Quando un utente inserisce, ad esempio, javarush.ru nel browser, la sua richiesta viene inviata al server DNS, dove si trasforma in un indirizzo reale. Parte 1. Cosa devi sapere prima di imparare Spring e JavaEE - 4È importante per noi capirlo, perché nelle nostre applicazioni chiameremo servizi remoti sia per nome di dominio che per indirizzo reale, e questi saranno gli stessi servizi. È tutto! In questo articolo abbiamo esaminato le basi della progettazione di rete, che ti saranno utili prima di iniziare a imparare la programmazione web. La prossima volta vedremo cos’è l’architettura client-server e perché comprenderla è così importante. Parte 2. Parliamo un po' dell'architettura software Parte 3. Protocolli HTTP/HTTPS Parte 4. Nozioni di base su Maven Parte 5. Servlet. Scrittura di una semplice applicazione web Parte 6. Contenitori servlet Parte 7. Presentazione del pattern MVC (Model-View-Controller) Parte 8. Scrittura di una piccola applicazione spring-boot
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION