„Hallo, Amigo!“

„Hallo, Bilaabo!“

„Was wirst du mir heute Neues erzählen?“

„Vieles. Aber zunächst denke ich, dass wir über die Arbeit mit einem Netzwerk und dem Internet sprechen werden. Interessiert?“

„Ja. Das Galaktische Internet ist super cool.“

„Okay, aber fangen wir mit etwas Geschichte an. Zu Beginn des 21. Jahrhunderts war die Situation so…“

„Jeder mit dem Internet verbundene Computer hatte eine eindeutige Nummer. Das war eine gewöhnliche 4-Byte-Nummer. Sie wird IP-Adresse genannt.“

„Aber Menschen haben ein schlechtes Gedächtnis und haben Schwierigkeiten, sich an etwas wie 2108458776 zu erinnern, deshalb schreiben sie oft jedes Byte einzeln.“

„Wenn wir die Vier-Byte-Zahl 2108458776 in einzelne Bytes aufteilen, erhalten wir 125.172.135.24. Wie Sie sich erinnern, besteht jedes Byte aus 8 Bits und kann Zahlen von 0 bis 255 enthalten.“

„So schreiben wir also die Nummer?“

„Ja. Es ist (für Menschen) einfach einfacher, sich Vier-Byte-Zahlen zu merken, wenn sie auf diese Weise geschrieben sind.“

„Zufällig spielte ihnen die Entscheidung, nur 4 Bytes zu verwenden, bald einen grausamen Streich. Die Zahl der mit dem Internet verbundenen Geräte wuchs so schnell, dass ihnen bald die Zahlen ausgingen.“

„Wie haben sie das umgangen?“

„Sie taten, was Menschen normalerweise tun.“

„Sie haben einen neuen Standard für IP-Adressen entwickelt und ihn stolz IPv6 genannt.“

„Im Gegensatz zu einer normalen IP-Adresse (IPv4 genannt), die 4 Bytes verwendet, um eine eindeutige Zahl zu bilden, verwendet der neue Standard 16.“

„Stellen Sie sich vor, Menschen konnten sich die zehn Ziffern einer gewöhnlichen Zahl (wie 2108458776) nicht merken, also mussten sie sie in vier Teile teilen, aber dann dachten sie daran, Zahlen zu verwenden, die aus 16 Bytes bestehen.“

„Ja, manchmal sind Menschen komisch.“

„Ja. Menschen sind Menschen.“

„Trotzdem sind sie aus ihrer misslichen Lage herausgekommen.“

„Sie hatten es satt, sich die Zahlen zu merken, und beschlossen, sie durch Wörter zu ersetzen.“

„Wie ist das? Können Sie mir ein Beispiel geben?“

„Natürlich web.mail.com , google.com , new.books.amazon.com , …“

„Diese Art von Namen nennt man Domäne.“

„Damit dieses Internet ordnungsgemäß funktioniert, haben sie eine spezielle Tabelle namens Domain Name System (DNS) erstellt, in der die IP-Adresse jedes Domänennamens gespeichert ist.“

"So funktioniert das."

1)  Ein Benutzer gibt eine Adresse in einen Browser ein, zum Beispiel web.mail.com .

2)  Der Browser greift auf das DNS zu und verwendet den Domänennamen, um die IP-Adresse abzurufen.

3)  An diese IP-Adresse wird eine Anfrage mit der erforderlichen URL gesendet.

„Das sieht nicht ganz einfach aus.“

„Aber dieser Ansatz hat mehrere Vorteile:“

1) Menschen fällt es leicht, sich Namen zu merken, die verbalisiert werden können.“

2) Domänennamen können hierarchisch aufgebaut werden, indem am Anfang eines Namens Unterdomänen hinzugefügt werden. Genau wie ein Paketname in Java.“

3) Wenn Sie die IP-Adresse des Webservers ändern müssen, müssen Sie nur den DNS-Eintrag ändern, und alles wird wie zuvor funktionieren – Benutzer müssen sich keine neue Adresse merken.“

„Der DNS sieht in etwa so aus:“

Domainname IP Adresse
mail.com 128.35.36.189
web.mail.com 145.12.17.13
new.mail.com 192.155.15.3
google.com 92.117.151.100
google.com 193.168.0.1
docs.google.com 217.12.222.1

"Macht Sinn."

„Jedenfalls ist eine Domäne der Name eines Computers, aber wir brauchen nicht den Computer – wir brauchen, was sich auf dem Computer befindet. Dafür gibt es URLs.“

„Ursprünglich war eine URL eigentlich ein Link zu einer Datei auf einem anderen Computer. Zum Beispiel:“

Beispiel
http://info.codegym.cc/user/info/profile.html _ _ _ _
Beschreibung
http  ist das Protokoll für die Client-Server-Kommunikation
. info.codegym.cc  ist der Domänenname des Computers.
user/info/profile.html  ist der Pfad zur Datei auf dem Computer

„Ganz am Anfang der Netzwerkentwicklung konnte ein Webserver nur eine URL verwenden, um Dateien bereitzustellen, die er irgendwo speicherte. Die URL war eigentlich ein globaler Pfad zur Datei: Computername + Pfad.“

„Später, als Webserver begannen, selbst Dateien zu generieren, änderten sich die URLs ein wenig und wurden zu einer Anfrage an den Webserver. Außerdem wurden Anfrageparameter hinzugefügt.“

„Heutzutage sieht man selten eine Dateierweiterung am Ende einer URL.“ Eine moderne URL ist nur ein eindeutiger Link mit Parametern. Eher ein Methodenaufruf als ein globaler Dateipfad.“

„Eine klassisch moderne URL sieht so aus:“

Parsen der URL
http://codegym.cc/alpha/api/contacts ? _ _ _ _ Benutzer-ID=13&filter=none&page=3
Beschreibung von Teilen der URL
codegym.cc  ist der Domänenname – der eindeutige Name (Adresse) eines Computers im Internet
http  ist das Protokoll für die Client-Server-Kommunikation
alpha/api/contacts  ist die Webserver-Anfrage oder Anfrage für eine Webseite auf dem Server
userid=13 & filter=none & page=3  ist eine Zeichenfolge mit den Anforderungsparametern

„Ja, ich erinnere mich. Du hast mir kürzlich von URLs erzählt.“

„Und auch über Häfen. Sie haben das Beispiel eines Mehrfamilienhauses verwendet.“

„Es wäre besser, mir zu sagen, was ‚http‘ ist. Ich sehe überall ‚Protokoll‘ geschrieben, aber mir ist nicht klar, was das ist.“

„Okay. Ich werde es dir ohne weitere Umschweife sagen.“

IP-Adresse, Domain, URL – 1

HTTP steht für Hyper Text Transport Protocol und dient der Übertragung von Hypertext .

„Was ist Hypertext?“

„Es ist HTML.“

„Grob gesagt handelt es sich bei einem Protokoll um eine Reihe von Regeln für die Kommunikation. Es beschreibt, welche Anfragen an einen Webserver gesendet werden können, in welchem ​​Format und wie der Webserver reagieren soll.“

„Kurz gesagt, die Situation ist folgende: Gewöhnliche Textdateien oder, wenn Sie so wollen, große Textblöcke werden zwischen Client und Server gesendet.

„Eine Anfrage geht an den Server und der Server gibt auf jede Anfrage eine Antwort .“

„Hier sind Beispiele für eine solche Anfrage und Antwort:“

Anfrage
GET alpha/api/contacts HTTP/1.1
Host: codegym.cc
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
Beschreibung
GET – request subtype
alpha/api/contacts – request to the web server
HTTP/1.1 – protocol version – HTTP/1.1
Host: codegym.cc – domain name
User-Agent: Mozilla/5… – unique browser name
Accept: text/html – requested document type: HTML
Connection: close – close the server connection after processing the request.

„Die erste Zeile ist die eigentliche Anfrage. Was folgt, sind zusätzliche Anfrageparameter, auch bekannt als ‚Header-Felder‘.“

„Und hier ist ein Beispiel für eine Antwort:“

Antwort
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: en
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
<html><body><a href="http://ample.com/about.html#contacts">Click here</a></body></html>
HTTP/1.1 200 OK - «200 OK» means everything is okay.
Date: Wed, 11 Feb 2009 - Date on which the request was processed
Server: Apache - Name of the web server
X-Powered-By: PHP - The server uses PHP
Last-Modified: Wed, 11 Feb 2009 - The time of the last update of the requested file
Content-Language: en - The language of the file
Content-Type: text/html; charset=utf-8 – This is an HTML-file with UTF-8 encoding
Content-Length: 1234 - The response is 1234 bytes long
Connection: close - The connection will be closed after the request is handled
<html><body><a href="http://ample - The HTML file itself.

„Ich möchte Sie auf zwei Dinge aufmerksam machen:“

„Erstens sieht es wie eine Dateianfrage an den Server aus, egal was Sie anfordern. Es spielt keine Rolle, ob sich die Datei auf dem Server befindet oder ob der Server sie als Antwort auf die Anfrage generiert.“

„Zweitens wird die Datei selbst als Teil der HTTP-Antwort gesendet . Mit anderen Worten, wir sehen einige zusätzliche Daten am Anfang der Antwort des Servers und dann den Hauptteil der bereitgestellten Datei.

„Wie interessant! Ich bin mir nicht sicher, ob ich alles verstanden habe. Ich werde das später noch einmal lesen.“

„Oh, ich möchte Ihnen noch von einer anderen kleinen, aber interessanten Sache erzählen: Kekse.“

"Was sind diese?"

„Laut HTTP-Protokoll handelt es sich bei Cookies um kleine Informationseinheiten, die der Server an den Client zur Speicherung auf dem Client sendet. Und sie werden im Rahmen nachfolgender Anfragen an den Server zurückgesendet.

„Und welchen Sinn hat das?“

„Angenommen, ein Benutzer meldet sich auf der Homepage einer Website an. Der Server erstellt auf dem Server ein Sitzungsobjekt für diesen Benutzer und eine eindeutige Sitzungsnummer wird als Cookie an den Client gesendet. Bei der nächsten Anfrage des Clients an den Diese Sitzungsnummer wird zusammen mit anderen Cookies an den Server zurückgesendet. Dies bedeutet, dass der Server den Benutzer erkennen kann, der die neue Anfrage gesendet hat.

"Wie interessant!"

„Ja. Wenn Sie Ihre eigenen Servlets schreiben, werden wir uns dieses Thema genauer ansehen. Aber machen wir erst einmal eine Pause.“

"Was auch immer du sagst."