Eine Einführung in HTTP: alles, was Sie wissen müssen

In diesem Artikel werde ich Ihnen zeigen, wie das World Wide Web auf einer grundlegenden Ebene funktioniert.

Die Kerntechnologie ist HTTP - Hypertext Transfer Protocol. Dies ist das Kommunikationsprotokoll, das Sie beim Surfen im Internet verwenden.

Grundsätzlich sendet Ihr Browser beim Besuch einer Website eine HTTP-Anfrage an einen Server. Dieser Server antwortet dann mit einer Ressource (einem Bild, Video oder dem HTML-Code einer Webseite), die Ihr Browser dann für Sie anzeigt.

Dies ist das nachrichtenbasierte Modell von HTTP. Jede HTTP-Interaktion enthält eine Anfrage und eine Antwort.

HTTP ist von Natur aus zustandslos.

Staatenlos bedeutet, dass alle Anforderungen voneinander getrennt sind. Daher muss jede Anfrage von Ihrem Browser selbst genügend Informationen enthalten, damit der Server die Anfrage erfüllen kann. Dies bedeutet auch, dass jede Transaktion des nachrichtenbasierten HTTP-Modells getrennt von den anderen verarbeitet wird.

URLs

Die URL (Uniform Resource Locator) ist wahrscheinlich das bekannteste Konzept des Web. Es ist auch eines der wichtigsten und nützlichsten Konzepte. Eine URL ist eine Webadresse, mit der Ressourcen im Web identifiziert werden.

Die Idee des Webs ist nach Ressourcen strukturiert. Von Anfang an war das Web die Plattform für den Austausch von Text- / HTML-Dateien, Dokumenten, Bildern usw. und kann als solche als Sammlung von Ressourcen betrachtet werden.

Protokoll  - Meistens handelt es sich um HTTP (oder HTTPS für eine sichere Version von HTTP).

Andere bemerkenswerte Protokolle sind:

  • File Transfer Protocol (FTP) - ist ein Standardprotokoll, das zum Übertragen von Dateien zwischen einem Client und einem Server über ein Netzwerk verwendet wird.
  • Das Simple Mail Transfer Protocol (SMTP) ist ein Standard für die E-Mail-Übertragung.

Domäne  - Name, der verwendet wird, um eine oder mehrere IP-Adressen zu identifizieren, an denen sich die Ressource befindet.

Pfad: Gibt den Ressourcenspeicherort auf dem Server an. Es verwendet dieselbe Logik wie ein Ressourcenspeicherort, der auf dem Gerät verwendet wird, auf dem Sie diesen Artikel lesen (z. B. /search/cars/VWBeetle.pdf oder C: / my cars / VWBeetle.pdf).

Parameter  - Zusätzliche Daten zum Identifizieren oder Filtern der Ressource auf dem Server.

Hinweis : Bei der Suche nach Artikeln und weiteren Informationen zu HTTP wird möglicherweise der Begriff URI (oder einheitliche Ressourcen-ID) verwendet. URI wird manchmal anstelle von URL verwendet, aber meistens in formalen Spezifikationen und von Personen, die angeben möchten. :) :)

HTTP-Anfragen

In HTTP muss jede Anforderung eine URL-Adresse haben. Zusätzlich benötigt die Anfrage eine Methode. Die vier wichtigsten HTTP-Methoden sind:

  • ERHALTEN
  • STELLEN
  • POST
  • LÖSCHEN

Ich werde diese und weitere Methoden im Abschnitt HTTP-Methoden dieses Artikels erläutern.

Und diese Methoden entsprechen direkt Aktionen:

  • lesen
  • aktualisieren
  • erstellen
  • löschen

Alle HTTP-Nachrichten haben einen oder mehrere Header, gefolgt von einem optionalen Nachrichtentext. Der Textkörper enthält die Daten, die mit der Anforderung gesendet werden, oder die Daten, die mit der Antwort empfangen werden.

Der erste Teil jeder HTTP-Anforderung enthält drei Elemente:

Beispiel:

  • GET / fügt / Suchergebnis hinzu? Item = vw + Käfer HTTP / 1.1

Wenn eine URL ein "?" Zeichen bedeutet, dass es eine Abfrage enthält. Das heißt, es sendet Parameter der angeforderten Ressource.

  1. Der erste Teil ist eine Methode, die angibt, welche HTTP-Methode verwendet wird. Am häufigsten wird die GET-Methode verwendet. Die GET-Methode ruft eine Ressource vom Webserver ab und da GET keinen Nachrichtentext hat, wird nichts benötigt, nachdem der Header benötigt wird.
  2. Der zweite Teil ist eine angeforderte URL.
  3. Der dritte Teil ist eine verwendete HTTP-Version. Version 1.1. ist die häufigste Version für die meisten Browser, jedoch übernimmt Version 2.0.

Es gibt auch einige andere interessante Dinge in einer HTTP-Anfrage:

Referer-Header  - Gibt die URL an, von der die Anforderung stammt.

User-Agent-Header  - Zusätzliche Informationen zum Browser, der zum Generieren der Anforderung verwendet wird.

Host-Header  - Identifiziert einen Hostnamen eindeutig. Dies ist erforderlich, wenn mehrere Webseiten auf demselben Server gehostet werden.

Cookie-Header  - Übermittelt zusätzliche Parameter an den Client.

HTTP-Antworten

Genau wie bei HTTP-Anforderungen bestehen auch HTTP-Antworten aus drei Elementen:

Beispiel:

HTTP / 1.1 200 OK

  1. Der erste Teil ist die verwendete HTTP-Version.
  2. Der zweite Teil ist der numerische Code des Ergebnisses für die Anforderung.
  3. Der dritte Teil ist eine Textbeschreibung des zweiten Teils.

Es gibt einige andere interessante Dinge in einer HTTP-Antwort:

Server-Header  - Informationen darüber, welche Webserver-Software verwendet wird.

Set-Cookie-Header  - Gibt das Cookie an den Browser aus.

Nachrichtentext  - Es ist üblich, dass eine HTTP-Antwort einen Nachrichtentext enthält.

Content-Length-Header  - Gibt die Größe des Nachrichtentexts in Byte an.

HTTP-Methoden

Die gebräuchlichsten Methoden sind GET und POST. Aber es gibt auch einige andere.

GET  - Mit dieser Methode fordern Sie Daten von einer angegebenen Ressource an, bei der die Daten in keiner Weise geändert werden. GET-Anforderungen ändern den Status der Ressource nicht.

POST  - Mit dieser Methode senden Sie Daten an einen Server, um eine Ressource zu erstellen.

PUT - Mit dieser Methode aktualisieren Sie die vorhandene Ressource auf einem Server, indem Sie den Inhalt im Hauptteil der Anforderung verwenden. Stellen Sie sich dies als eine Möglichkeit vor, etwas zu "bearbeiten".

HEAD  - Sie verwenden diese Methode genauso wie GET, jedoch mit dem Unterschied, dass die Rückgabe einer HEAD-Methode keinen Body in der Antwort enthalten sollte. Die Rückgabe enthält jedoch dieselben Header, als ob GET verwendet worden wäre. Sie verwenden die HEAD-Methode, um zu überprüfen, ob die Ressource vorhanden ist, bevor Sie eine GET-Anforderung stellen.

TRACE -  Sie verwenden diese Methode zu Diagnosezwecken. Die Antwort enthält in ihrem Text den genauen Inhalt der Anforderungsnachricht.

OPTIONEN  - Mit dieser Methode beschreiben Sie die Kommunikationsoptionen (HTTP-Methoden), die für die Zielressource verfügbar sind.

PATCH - Mit  dieser Methode können Sie teilweise Änderungen an einer Ressource vornehmen.

LÖSCHEN - Mit dieser Methode löschen Sie die angegebene Ressource.

SICH AUSRUHEN

Representational State Transfer (REST) ​​ist ein Architekturstil, bei dem Anforderungen und Antworten Darstellungen des aktuellen Status der Systemressource enthalten.

"Normaler" Weg:

  • //carapp.com/search?make=wv&model=beetle

REST-Stil:

  • //carapp.com/search/vw/beetle

Wenn Sie neugierig sind, können Sie hier mehr über REST erfahren.

HTTP-Header

Die Anforderungs- / Antwortstruktur besteht aus drei Hauptkomponenten. Diese beinhalten:

  • Erste Linie
  • Überschriften
  • Körper / Inhalt

Wir haben bereits über die erste Zeile in HTTP-Anfragen und -Antworten gesprochen, und die Körperfunktion wurde ebenfalls erwähnt. Jetzt werden wir über HTTP-Header sprechen.

Die HTTP-Header werden nach der ersten Zeile hinzugefügt und als Name: Wert-Paare definiert, die durch einen Doppelpunkt getrennt sind. HTTP-Header werden verwendet, um zusätzliche Parameter zusammen mit der Anforderung oder Antwort zu senden.

Wie bereits erwähnt, enthält der Nachrichtentext die Daten, die mit der Anforderung gesendet werden sollen, oder die Daten, die zusammen mit der Antwort empfangen werden.

Es gibt verschiedene Arten von Headern, die je nach Verwendung in vier große Kategorien eingeteilt werden:

  • Allgemeiner Header  - Header, die sowohl in Anforderungs- als auch in Antwortnachrichten verwendet werden können und unabhängig von den ausgetauschten Daten sind.
  • Anforderungsheader  - Diese Header definieren Parameter für die angeforderten Daten oder Parameter, die wichtige Informationen über den Client enthalten, der die Anforderung stellt.
  • Antwortheader  - Diese Header enthalten Informationen zur eingehenden Antwort.
  • Entitätsheader  - Die Entitätsheader beschreiben den Inhalt, aus dem der Nachrichtentext besteht.

HTTP-Statuscodes

Beim Surfen im Internet sind möglicherweise Seiten mit dem Wert "404 Fehler: nicht gefunden" oder "500 Fehler: Server antwortet nicht" aufgetreten.

Dies sind HTTP-Statuscodes.

Jede HTTP-Antwortnachricht muss in der ersten Zeile einen HTTP-Statuscode enthalten, der das Ergebnis der Anforderung angibt.

Es gibt fünf Gruppen von Statuscodes, die nach der ersten Ziffer gruppiert sind:

  • 1xx - Information.
  • 2xx - Die Anfrage war erfolgreich.
  • 3xx - Der Client wird zu einer anderen Ressource umgeleitet.
  • 4xx - Die Anfrage enthält einen Fehler.
  • 5xx - Der Server hat einen Fehler beim Erfüllen der Anforderung festgestellt.

Hier finden Sie eine vollständige Liste der HTTP-Statusantwortcodes und deren Erläuterungen.

HTTPS (Hypertext Transfer Protocol Secure)

Die sichere Version des HTTP-Protokolls ist HyperText Transfer Protocol Secure (HTTPS). HTTPS bietet eine verschlüsselte Kommunikation zwischen einem Browser (Client) und der Website (Server).

In HTTPS wird das Kommunikationsprotokoll mit TLS (Transport Layer Security) oder SSL (Secure Sockets Layer) verschlüsselt.

Das Protokoll wird daher häufig auch als HTTP über TLS oder HTTP über SSL bezeichnet.

Sowohl das TLS- als auch das SSL-Protokoll verwenden ein asymmetrisches Verschlüsselungssystem. Asymmetrische Verschlüsselungssysteme verwenden einen öffentlichen Schlüssel (Verschlüsselungsschlüssel) und einen privaten Schlüssel (Entschlüsselungsschlüssel), um eine Nachricht zu verschlüsseln.

Jeder kann den öffentlichen Schlüssel zum Verschlüsseln einer Nachricht verwenden. Private Schlüssel sind jedoch geheim, und das bedeutet, dass nur der beabsichtigte Empfänger die Nachricht entschlüsseln kann.

SSL / TLS-Handshake

Wenn Sie eine HTTPS-Verbindung zu einer Website anfordern, sendet die Website ihr SSL-Zertifikat an Ihren Browser. Dieser Prozess, bei dem Ihr Browser und Ihre Website die Kommunikation initiieren, wird als "SSL / TLS-Handshake" bezeichnet.

Der SSL / TLS-Handshake umfasst eine Reihe von Schritten, bei denen sich Browser und Website gegenseitig validieren und die Kommunikation über den SSL / TLS-Tunnel starten.

Wie Sie wahrscheinlich bemerkt haben, wird bei Verwendung eines vertrauenswürdigen sicheren Tunnels während einer HTTPS-Verbindung das grüne Vorhängeschlosssymbol in der Adressleiste des Browsers angezeigt.

Vorteile von HTTPS

Die Hauptvorteile eines HTTPS sind:

  • Kundeninformationen wie Kreditkartennummern und andere vertrauliche Informationen werden verschlüsselt und können nicht abgefangen werden.
  • Besucher können überprüfen, ob Sie ein registriertes Unternehmen sind und die Domain besitzen.
  • Kunden wissen, dass sie Websites ohne HTTPS nicht besuchen sollen, und vertrauen daher eher auf Einkäufe von Websites, die HTTPS verwenden, und schließen diese ab.

Danke fürs Lesen! Weitere Artikel wie diesen finden Sie in meinem freeCodeCamp-Profil. Und schau dir andere lustige Sachen an, die ich auf meiner GitHub-Seite erstellt habe.