Rechnernetze (3) : HyperText Transfer Protocol (HTTP)

avatar

Die folgenden drei Beiträge stellen exemplarisch verschiedene Protokolle der Anwendungsschicht vor, um verschiedene Designprinzipien von Protokollen der Anwendungsschicht zu beleuchten.

  • HTTP (HyperText Transfer Protocol)

Zunächst betrachten wir die Nachrichtenformate von HTTP. HTTP definiert lediglich zwei Nachrichtentypen, eine HTTP-Anfragenachricht und eine HTTP-Antwortnachricht.
Hier ist eine typische Anfragenachricht:


GET /directory/file/ HTTP/1.1
Host: www.example.de
Connection: close
User-agent: Mozilla/4.0

Die Anfragenachricht ist ein ASCII-Text, der von Menschen gelesen werden kann. Er genügt einem bestimmten Format. Die erste Zeile mit GET-Befehl heißt Anfragezeile und hat immer die drei Parameter: Methode (hier GET), Dateiname (hier: /directory/file/) und HTTP-Version (hier: HTTP/1.1). Die GET-Methode wird benutzt, um eine Datei anzufordern.

Die drei weiteren Zeilen in der Anfragenachricht sind die Header-Zeilen. Die Header-Zeile Host gibt den Web-Server "www.example.de" an, auf dem die Datei "/directory/file/" liegt.

Zum Verständnis von Anfragenachrichten ist noch eine Präzisierung bezüglich der Funktionsweise des Webs notwendig: Web-Seiten werden üblicherweise als Dokumente bezeichnet. Diese Seiten bestehen aus Objekten. Ein Objekt ist einfach eine Datei z. B. eine HTML- oder GIF-Datei, die mit einer eigenen URL zugänglich ist.

In obigem Beispiel fordert der Client das Objekt "file" im Verzeichnis "/directory/" vom Web-Server "www.example.de" an. Aus der Zeile, die die Benutzer zur eindeutigen Identifizierung von Web-Seiten angeben, werden für eine HTTP Anfragenachricht zwei Parameter gewonnen: die Eingabe "www.example.de/directory/file" liefert für die Anfragezeile das Dokument "/directory/file/" und für die erste Header-Zeile den Hostnamen "www.example.de".

In obiger Anfragenachricht wünscht der Client durch die Angabe in der dritten Zeile "connection: close" ausdrücklich eine nicht persistente Verbindung, obwohl HTTP in der Version 1.1 dieses unterstützt. Die vierte Zeile gibt den Browser Typ an, in diesem Fall das "Mozilla/4.0".

Eine mögliche Antwort auf obige Anfrage könnte wie folgt aussehen:


HTTP/1.1 200 OK
Connection: close
Date: Mon, 16 Dec 2019 12:00:15 GMT
Server: Apache/2.0.35 (Unix)
Last-Modified: Mon, 16 Dec 2019 09:23:24 GMT
Content-Length: 483
Content-Type: text/html

Die erste Zeile, die Statuszeile, umfasst immer drei Felder: Version (hier HTTP-Version 1.1), Statuscode (200 bedeutet, dass alles in Ordnung ist), und Phrase (hier OK: die Anfrage wurde gemäß den Anforderungen abgearbeitet). Danach folgen wieder Header-Zeilen, die dem Web-Browser Details über die Lieferung geben: Zeile 3 enthält das Lieferdatum, d. h. wann die Antwortnachricht generiert wurde, Zeile 4 den Server und die Zeilen 5 bis 7 beschreiben das gelieferte Objekt selbst. Schließlich folgen im sogenannten Entity Body die eigentlichen Daten.

Quelle
http://ptgmedia.pearsoncmg.com/images/9781587132087/samplechapter/1587132087_03.pdf, pp. 81-83 [letzter Zugriff: 16.12.2019, 16:05]



0
0
0.000
1 comments
avatar

Congratulations @ozelot47! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You received more than 15000 upvotes. Your next target is to reach 20000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

You can upvote this notification to help all Steem users. Learn how here!

0
0
0.000