Dieses Material ist Teil der Reihe „Einführung in die Unternehmensentwicklung“. Vorherige Artikel:
Hallo! Heute werden wir die Protokolle HTTP und HTTPS verstehen. Aber lassen Sie uns zunächst einen Punkt klarstellen: Wir sprechen über Datenübertragungsprotokolle über das Netzwerk auf der Anwendungsebene des OSI-Modells. Wie Sie sich erinnern, haben wir das OSI-Modell in einem der vorherigen Artikel besprochen. Und wenn Sie sich nicht erinnern, hier ist es .
Es ist sofort erwähnenswert, dass das HTTP-Protokoll nur aus Text besteht. Nun, uns interessiert vor allem die Struktur, in der sich dieser Text befindet. Jede Nachricht besteht aus drei Teilen:
Was ist ein Datenübertragungsprotokoll?
Dies ist die Bezeichnung für die allgemein akzeptierte Vereinbarung, dank der Entwickler verschiedener Dienste Informationen in einer einzigen Form senden. Mit Google Chrome können Sie beispielsweise Informationen sowohl von Facebook als auch von Twitter abrufen, da die Entwickler diese über das Standard-HTTP-Protokoll übertragen und Ihr Browser damit umgehen kann. Die einheitlichen Regeln sind auch für die serverseitigen Entwickler selbst sehr praktisch: Es gibt viele Bibliotheken, die Informationen für Sie konvertieren und über das erforderliche Protokoll versenden können. HTTP wurde ursprünglich als Protokoll zur Übertragung von HTML-Seiten konzipiert. Dies war lange Zeit der Fall, doch mittlerweile übertragen Programmierer häufig sowohl Strings als auch Mediendateien darüber. Insgesamt ist dieses Protokoll vielseitig und flexibel und wirklich einfach zu verwenden. Lassen Sie uns nun herausfinden, wie das geht.
HTTP-Struktur
Es ist sofort erwähnenswert, dass das HTTP-Protokoll nur aus Text besteht. Nun, uns interessiert vor allem die Struktur, in der sich dieser Text befindet. Jede Nachricht besteht aus drei Teilen:
- Startlinie – definiert Servicedaten.
- Header – Beschreibung der Nachrichtenparameter.
- Nachrichtentext (Body) – Nachrichtendaten. Muss durch eine Leerzeile von Überschriften getrennt werden.
So sieht eine einfache HTTP-Anfrage aus
GET / HTTP/1.1
Host: javarush.com
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Die Startlinie enthält:
- GET – Anforderungsmethode;
- / – Anforderungspfad (Pfad);
- HTTP/1.1 – Version des Datenübertragungsprotokolls.
- Host – der Host, an den die Anfrage gerichtet ist;
- User-Agent ist der Client, der die Anfrage sendet.
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com
{
"Id": 12345,
"User": "John"
}
Die Anfrage wird an javarush.com/user/create/json gesendet, Protokollversion ist HTTP/1.1. Accept gibt an, welches Antwortformat der Client erwartet. Content-Type gibt an, in welchem Format der Nachrichtentext gesendet wird. Inhaltslänge – die Anzahl der Zeichen im Textkörper. Eine HTTP-Anfrage kann viele verschiedene Header enthalten. Weitere Details finden Sie in der Protokollspezifikation .
HTTP-Antworten
Nach Erhalt der Anfrage verarbeitet der Server diese und sendet eine Antwort an den Client:HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Die Startzeile in der Antwort enthält die Protokollversion (HTTP/1.1), den Statuscode (200) und die Statusbeschreibung (OK). Überschriften geben die Art und Länge des Inhalts an. Der Hauptteil der Antwort enthält den HTML-Code, den der Browser in die HTML-Seite zeichnet.
Antwortstatuscodes
Mit dem Nachrichtentext und den Kopfzeilen ist alles klar, aber es lohnt sich, ein paar Worte zu den Statuscodes zu sagen. Antwortstatuscodes sind immer dreistellig und die erste Ziffer des Codes gibt die Kategorie der Antwort an:- 1xx - informativ. Die Anfrage wurde empfangen, der Server ist bereit zum Fortfahren;
- 2xx - erfolgreich. Die Anfrage wurde eingegangen, verstanden und bearbeitet;
- 3xx - Umleitung. Zur Bearbeitung der Anfrage müssen folgende Schritte durchgeführt werden:
- 4xx – Clientfehler. Die Anfrage enthält Fehler oder entspricht nicht dem Protokoll;
- 5xx – Serverfehler. Der Server konnte die Anfrage nicht verarbeiten, obwohl sie korrekt verfasst war;
- 200 OK – die Anfrage wurde empfangen und erfolgreich verarbeitet;
- 201 Erstellt – die Anfrage wurde empfangen und erfolgreich verarbeitet, was zur Erstellung einer neuen Ressource oder ihrer Instanz führte;
- 301 Permanent verschoben – die angeforderte Ressource wurde dauerhaft verschoben und nachfolgende Anfragen müssen an der neuen Adresse erfolgen;
- 307 Temporäre Umleitung – die Ressource wurde vorübergehend verschoben. Im Moment können Sie über die automatische Umleitung darauf zugreifen;
- 403 Verboten – die Anfrage ist klar, aber eine Autorisierung ist erforderlich;
- 404 Nicht gefunden – der Server hat die Ressource an dieser Adresse nicht gefunden;
- 501 Nicht implementiert – der Server unterstützt keine Funktionalität zur Beantwortung dieser Anfrage;
- 505 HTTP-Version nicht unterstützt – Der Server unterstützt die angegebene Version des HTTP-Protokolls nicht.
GO TO FULL VERSION