Wenn Sie Java SE bereits erlernt haben (oder kurz davor stehen), über Ihre nächsten Schritte nachzudenken, um den Beruf eines Java-Entwicklers zu erobern. Teil 1. Was Sie wissen müssen, bevor Sie Spring und JavaEE lernen – 1 Einerseits verfügen Sie bereits über gute Java-Kenntnisse: Sie wissen, wie man mit einer IDE arbeitet, Programme schreibt und vieles mehr. Aber was sollten Sie als nächstes mit Ihren Programmen tun? Wie macht man sie noch cooler und „lässt sie auf die Welt los“? Es wird immer offensichtlicher, dass es an der Zeit ist, sich mit Unternehmenstechnologien zu befassen. Und jetzt beginnt der Spaß. Es spielt keine Rolle, für welchen Technologie-Stack Sie sich entscheiden. Ob JavaEE oder Spring, Sie werden wahrscheinlich auf eine Menge Dinge stoßen, die weit, weit über Ihr Verständnis hinausgehen. Zwischen den Java-Grundlagen und fortgeschrittenen Technologien muss noch ein Zwischenschritt in Sachen Wissen vollzogen werden, um beim Lesen umfangreicher Dokumentationen die Reste Ihrer Selbstbeherrschung und Ihres Selbstvertrauens zu bewahren. Deshalb,Ziel ist es, Ihnen das theoretische Mindestwissen zu vermitteln, das Sie für Ihr weiteres Studium von JavaEE oder Spring benötigen. Dieses Material ist in 7 Teile unterteilt:
  1. Wir werden ein wenig über Networking sprechen.
  2. Wir werden die Client-Server- und Drei-Ebenen-Architektur untersuchen.
  3. Wir werden die HTTP/HTTPS-Protokolle untersuchen.
  4. Wir erfahren alles, was Sie über Maven wissen müssen.
  5. Wir reden über Protokollierung.
  6. Über Servlet-Container.
  7. Und schließlich zu MVC.

Teil 1. Wir werden ein wenig über Networking sprechen.

Beginnen wir mit dem, was am wichtigsten ist, indem wir darüber sprechen, worauf jedes soziale Netzwerk, jeder Webdienst und jede Webanwendung, jeder Instant Messenger und jede einfache Website basiert – das Netzwerk (im Kontext dieser Artikelserie bedeutet der Begriff „ Netzwerk“ das Internet ). . Das Netzwerk besteht aus einer riesigen Anzahl von Computern: Sie sind miteinander verbunden und können kommunizieren. Es ist wichtig zu verstehen, wie sie dies tun, da Webanwendungen Informationen von einem Computer an einen anderen senden.

OSI-Modell

Das Open Systems Interconnection (OSI)-Modell schafft einen mehrstufigen Ansatz zum Aufbau eines Netzwerks. Es zeigt deutlich, wie und auf welcher Ebene Einheiten desselben Netzwerks miteinander interagieren können. Insgesamt enthält dieses Modell 7 Schichten:
7 Anwendung
6 Präsentation
5 Sitzung
4 Transport
3 Netzwerk
2 Datenverbindung
1 Körperlich
Durch die Aufteilung des Modells in Abstraktionsebenen können Entwickler, die beispielsweise auf der Transportschicht arbeiten, sich keine Gedanken über Implementierungsdetails auf der Ebene der Netzwerk- und Sitzungsebenen machen. Dieser Ansatz wird auch in der Programmierung verwendet. Betrachten wir alle Schichten des OSI-Modells und bestimmen, welche für uns von Interesse sind:
  1. Physikalische Ebene – Diese Ebene befasst sich mit den Gesetzen der Physik und deren Nutzung für unsere Zwecke. Zum Beispiel das Erstellen von Kabeln und deren Verlegung zu Einheiten im Netzwerk.

    Diese Schicht interessiert uns nicht.

  2. Datenverbindungsschicht – Diese Schicht ist für die Datenübertragung an Netzwerkknoten und die Erstellung von Datenübertragungskanälen für physische Objekte verantwortlich.

    Diese Schicht interessiert uns nicht, es sei denn, Sie möchten Firmware für die Hardware schreiben, die Datenverbindungen herstellt.

  3. Netzwerkschicht – Diese Schicht dient zur Bestimmung der Adressen einzelner Netzwerkbenutzer und der Routen zu ihnen. Es lohnt sich, mehr über die Details dieser Schicht, nämlich Netzwerkadressen, zu erfahren.

    Netzwerkadressen werden durch ein spezielles Protokoll definiert: Das gebräuchlichste ist IPv4 (Internet Protocol Version 4). Dies ist das Protokoll, das ein Webprogrammierer verwenden muss, um einen anderen Netzwerkbenutzer zu kontaktieren.

    Eine IPv4-Adresse besteht aus vier durch Punkte getrennten Bytewerten, zum Beispiel: 192.0.2.235. Beachten Sie, dass es sich bei diesen Werten um Bytes handelt, das heißt, sie liegen im Bereich 0..255.

    IP-Adressen wiederum werden in Klassen eingeteilt. Wir können uns nicht einfach eine schöne Zahlenkombination zuordnen, aber wir werden hier nicht sehr tief gehen. Es genügt zu verstehen, dass eine IP-Adresse einen Netzwerkbenutzer eindeutig identifiziert und zur Kontaktaufnahme mit diesem Benutzer verwendet werden kann.

  4. Transportschicht – Diese Schicht übernimmt die Übermittlung von Informationen an einen Adressaten. Um dies zu erreichen, werden verschiedene Protokolle verwendet. Im Moment sind wir nicht an ihnen interessiert. Uns interessiert viel mehr das Konzept eines Hafens , der auf dieser Ebene erscheint.

    Ports sind für die Identifizierung einer bestimmten Anwendung auf einem Computer verantwortlich. Angenommen, Sie schreiben eine Chat-App in Java, installieren sie auf zwei Computern und möchten Ihrem Freund eine Nachricht senden. Ihre Nachricht wird verpackt, an eine bestimmte IP-Adresse gesendet und an Ihren Kumpel zugestellt, aber sein Computer weiß nicht, was er mit den empfangenen Informationen anfangen soll, weil er nicht versteht, welche Anwendung Ihre Nachricht verarbeiten soll. Wenn Netzwerkeinheiten kommunizieren, werden Ports verwendet, um anzugeben, welche Anwendung die Informationen verarbeiten soll.

    Der Port ist eine Zahl im Bereich von 0 bis 65535. Er wird nach einem Doppelpunkt an die IP-Adresse angehängt: 192.0.2.235:8080 . Sie können jedoch nicht alle Ports im angegebenen Bereich nutzen: Einige davon sind für das Betriebssystem reserviert, andere werden üblicherweise für bestimmte Zwecke verwendet. Wir werden uns nicht näher mit den Zwecken verschiedener Häfen befassen. Zunächst reicht es aus, ihre Rolle im Kommunikationsprozess im Netzwerk zu verstehen.

  5. Sitzungsschicht – Diese Schicht erstellt und verwaltet Kommunikationssitzungen. Auf dieser Ebene können Anwendungen interagieren und Service-Level-Anfragen senden. Was wir wissen müssen ist, dass auf dieser Ebene eine Sitzung zwischen zwei Benutzern geöffnet wird und wir mit der Sitzung arbeiten müssen.

    Eine Sitzung ist eine Einheit, die erstellt wird, wenn eine Verbindung zwischen zwei Benutzern hergestellt wird. Es kann notwendige Informationen über einen Benutzer und über den Verlauf der Interaktion mit dem Benutzer speichern. Ein wichtiges Detail ist, dass die Sitzung nicht verschwindet, wenn der Informationsaustausch beendet wird. Stattdessen behält es seinen Zustand für einen festgelegten Zeitraum bei, sodass Benutzer auch nach einer Pause weiterhin Informationen austauschen können.

    Wenn eine Anwendung mit mehreren Benutzern gleichzeitig kommuniziert, werden entsprechend viele Verbindungen (und damit Sitzungen) aufgebaut. Jede Sitzung verfügt über eine eindeutige Kennung (ID) , die es der Anwendung ermöglicht, zwischen den Benutzern zu unterscheiden, mit denen sie kommuniziert.

  6. Präsentationsschicht – Diese Schicht ist für die Kodierung/Dekodierung von Daten verantwortlich. Wenn wir die Zeichenfolge „Hallo Web“ an einen anderen Benutzer senden müssen, wird sie natürlich zuerst in Binärcode umgewandelt (kodiert) und erst dann gesendet. Beim Erreichen des Empfängers wird die Nachricht zurückkonvertiert (dekodiert) und der Empfänger kann die ursprüngliche Zeichenfolge sehen. Diese Aktionen finden auf der Präsentationsebene statt.

  7. Die Anwendungsschicht ist für uns die interessanteste Schicht. Es ermöglicht Anwendungen, mit dem Netzwerk zu kommunizieren. Auf dieser Ebene empfangen und senden wir Nachrichten und stellen Anfragen an Dienste und entfernte Datenbanken.

    Auf dieser Ebene werden viele Protokolle verwendet: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET und natürlich HTTP/HTTPS. Ein Protokoll ist eine universelle Vereinbarung, an die wir uns bei der Kommunikation halten. Auf HTTP/HTTPS werden wir auf jeden Fall gesondert ausführlich eingehen.

Teil 1. Was Sie wissen müssen, bevor Sie Spring und JavaEE lernen – 2Wir müssen nicht wissen, wie jede Ebene des Modells funktioniert. Das Wichtigste ist, die Prinzipien hinter der Funktionsweise der Elemente zu verstehen, mit denen wir beim Schreiben von Webanwendungen arbeiten müssen, nämlich:
  • IP-Adresse – Die Adresse des Benutzers im Netzwerk
  • Port – Die Adresse der Anwendung eines bestimmten Benutzers
  • Sitzung – Eine Entität, die während der gesamten Kommunikationsdauer zwischen zwei Benutzern existiert
  • Anwendungsprotokolle (HTTP/HTTPS) – Dies sind Regeln, die wir beim Verfassen und Senden von Nachrichten befolgen.
Wenn wir beispielsweise einen Online-Shop besuchen, geben wir dessen Adresse und Port an. Bei unserem ersten Besuch wird eine Sitzung erstellt. Der Store kann Informationen in der Sitzung aufzeichnen. Beispielsweise kann das Geschäft Informationen über Artikel speichern, die wir im Warenkorb gelassen haben. Wenn wir den Tab mit dem Online-Shop schließen und ihn später erneut aufrufen, befinden sich unsere Artikel weiterhin im Warenkorb, da sie in der Sitzung gespeichert werden. Natürlich erhalten wir alle Informationen, die wir vom Shop erhalten, über das HTTP/HTTPS-Protokoll und unser Browser weiß, wie er sie verarbeitet. Sie können Einwände erheben und sagen, dass Sie die Adresse und den Port nie in den Browser eingegeben haben, und Sie hätten teilweise recht. Sie haben lediglich den Domänennamen eingegeben, der von einem DNS-Server konvertiert wurde. Werfen wir einen genaueren Blick darauf, was hier ist.

DNS (Domain Name System)

Wie wir bereits erfahren haben, hat jeder Netzwerkbenutzer eine eindeutige Adresse. Wenn wir über die Anwendung sprechen, lautet ihre eindeutige Adresse IPv4-address:port . Wenn Sie diese Adresse kennen, können Sie direkt auf die Anwendung zugreifen. Stellen Sie sich vor, wir hätten eine Webanwendung geschrieben, die die durchschnittliche Lufttemperatur in allen Ländern in Echtzeit anzeigt. Wir haben es auf einem Server mit der Adresse 226.69.237.119 auf Port 8080 bereitgestellt. Um Informationen von uns erhalten zu können, muss der Benutzer 5 Zahlen in den Browser eingeben: 226.69.237.119:8080. Menschen merken sich nicht gerne Zahlenreihen: Viele von uns können sich nicht mehr als zwei Telefonnummern merken. Deshalb das Domain Name Systemwurde erfunden. Wir können einen „Alias“ für unsere Adresse erstellen, zum Beispiel world-temperature.com. Anstatt uns über eine Adresse zu suchen, die aus fünf schwer zu merkenden Zahlen besteht, kann der Benutzer unseren Domainnamen in die Adressleiste des Browsers eingeben. Es gibt DNS-Server , die Domänennamen echten Adressen zuordnen. Wenn ein Benutzer beispielsweise codegym.cc in einem Browser eingibt, wird seine Anfrage an einen DNS-Server gesendet, der sie in die tatsächliche Adresse umwandelt. Teil 1. Was Sie wissen müssen, bevor Sie Spring und JavaEE lernen – 4Dies ist für uns wichtig zu verstehen, da unsere Anwendungen Remote-Dienste sowohl über Domänennamen als auch über echte Adressen aufrufen. Wir müssen verstehen, dass die Dienste in beiden Fällen gleich sind. Das war es fürs Erste! In diesem Artikel haben wir uns mit den Grundlagen des Netzwerkens befasst, die Ihnen beim Erlernen der Webprogrammierung nützlich sein werden.Das nächste Mal schauen wir uns an, was eine Client-Server-Architektur ist und warum es so wichtig ist, sie zu verstehen. Teil 2. Lassen Sie uns ein wenig über Softwarearchitektur sprechen. Teil 3. HTTP/HTTPS. Teil 4. Die Grundlagen von Maven. Teil 5. Servlets und die Java-Servlet-API. Schreiben einer einfachen Webanwendung Teil 6. Servlet-Container Teil 7. Einführung in das MVC-Muster (Model-View-Controller).