X
    Categories: Technik

Was ist Datenübertragung mit HTTP-Protokoll?

FTP ist im Web 2.0 out, HTTP in. Für Dateiübertragungen wie den Bildupload ist heute HTTP das einfachste und komfortabelste Protokoll. Was ist HTTP? Wie funktioniert die Dateiübertragung im Internet?

Trivialerweise bezeichnet der Upload den Datentransfer im Internet vom Client zum Server: Daten werden von einem lokalen Rechner, dem Client, auf einen anderen, entfernten, den Server, mittels eines Übertragungsprotokolls „hinaufgeladen“.

Verschiedene Faktoren haben dazu geführt, dass die Dateiübertragung via HTTP heute immer häufiger als Upload-Protokoll eingesetzt wird. Die Eigenschaften von HTTP, insbesondere sein Request/Response-Prinzip und seine Zustandslosigkeit, geben wesentliche Rahmenbedingungen für den Upload-Prozess vor. Funktionell bedeutet der Upload von einem webbasierten Client zunächst einmal, dass der Anwender clientseitig im Browser die Möglichkeit erhält auszuwählen, welche Dateien er hochladen möchte, sowie den Upload-Prozess zu starten bzw. abzubrechen.

Was sind eigentlich Protokolle?

Protokolle sind festgelegte Verfahrensweisen, Konventionen und Regeln über den Austausch von Informationen zwischen Rechnern, die einen vollständigen und fehlerfreien Austausch gewährleisten. Im Protokoll wird damit die Sprache festgelegt, in der sich Rechner miteinander „unterhalten“: Begrüßung, Anforderungen, Antworten, Fehlermeldungen und Verabschiedung. Für Hersteller von Hard- und Software verbindliche Regelwerke, denn ohne diese Protokolle würde Datenübertragung im Internet als plattform- und herstellerunabhängiges Medium nicht funktionieren. Protokolle werden nach intensiver Diskussion in diversen internationalen Gremien in sog. RfC’s (Requests for Comments) per Internet verbreitet.

Wie funktioniert der Datei-Transfer über FTP?

Das File Transfer Protocol (FTP) gilt immer noch als das gängigste Dienstprotokoll für den Datei-Upload über TCP/IP-Netzwerke. Es weist jedoch bei dem heute üblichen dynamischen Content-Konzept im Internet gravierende Nachteile auf, die die Nutzung der Upload-Funktionalität durch breite Massen behindert:

  • Es wird eine eigene Software, der FTP-Client, für den Upload benötigt; der Benutzer muss also aus dem gewohnten WWW-Browser in die FTP-Software wechseln.
  • Der Administrationsaufwand ist immens, denn das FTP-Rechtemanagement ist hochkomplex. Hat ein Nutzer einmal die Zugangsberechtigung für den Upload, besteht serverseitig keinerlei Kontrollmöglichkeit bezüglich der hochzuladenden Dateien.

FTP ist im Web 2.0 out

Seit der Einbindung von Programmiersprachen in HTML hat FTP daher für den Datei-Upload erheblich an Bedeutung verloren: Mit serverseitigen Programmen können Daten, die z.B. auf Webseiten eingegeben werden, an andere, nicht webfähige Programme übergeben werden. Die Entwicklung von Java, PHP und ASP als Web-Programmiersprachen hat auch plattformunabhängige Anwendungen und Datenbankanbindungen ins Web gebracht, sodass komplette Geschäftsabläufe von der Bestellung bis zur Abrechnung per Internettechnologien abgewickelt werden können. Mit diesen Sprachen werden kleine Programme, z.B. ein Online-Katalog mit Bestelldaten aus einer Datenbank, zum Anwender übertragen und auf seinem Rechner im Hintergrund ausgeführt.

Warum benutzt man HTTP?

Das Hypertext Transfer Protocol (HTTP) ist das am häufigsten verwendete Web-Protokoll. HTTP liegt der Informationsübertragung im WWW zugrunde und legt die Syntax für die Anforderung und Auslieferung von Seiten fest. Per HTTP kann mit Hilfe des ursprünglich aus dem Mail-Bereich stammenden MIME-Type-Systems (Multipurpose Internet Mail Extension) beinahe jede Dateiart übermittelt werden. Der MIME-Type kennzeichnet bei einer HTTP-Übertragung, welche Daten übertragen werden, z.B. bei einem jpg-Bild image/jpeg.

Welche Vorteile bietet HTTP für die Dateiübertragung?

Der Upload über das Dienstprotokoll HTTP hat clientseitig den Vorteil, dass der Nutzer den Datei-Upload über das gewohnte Browser-Fenster abwickeln kann. Serverseitig lässt sich die Art der Dateien, ihre Größe und das Zielverzeichnis kontrollieren und die komplette Dateiverwaltung über die Einbindung von Applikationen vergleichsweise bequem steuern. HTTP basiert auf einem Request/Response-Standard nach dem Client-Server-Modell, wobei der Web-Browser des Endnutzers den Client, die Website den Server darstellt. Der Client stellt eine Anfrage (Request) und erhält eine Antwort (Response) von einem Server. Die untenstehende Abbildung 1 illustriert das allgemeine Request-Response-Prinzip von HTTP.

Was ist der HTTP-Request?

Für einen Bild-Upload ist die Funktionsweise des HTTP-Response unwesentlich. Wichtig ist jedoch der HTTP-Request: Um eine HTTP-Transaktion durchführen zu können, baut der Client eine TCP/IP-Verbindung zu einem Server auf. Danach erfolgt die Übertragung des Requests. Ein HTTP-Request ist durch die Angabe von Methode, URL und den Request-Header-Feldern bestimmt. Dabei kommen beispielsweise die Methoden POST oder GET zum Einsatz. Ein Server antwortet auf jeden Request mit Informationen, ob die gewählte Methode zulässig ist oder nicht. Datei-Uploads, also die Übertragung von einem Client an einen HTTP-Server, funktionieren nur mit der Methode POST. Grundsätzlich können Daten zwar auch mittels GET-Request übertragen werden (als Argumente im URL), aber die Übertragung der Argumente erfolgt bei POST diskret, die zulässige Datenmenge ist deutlich größer und zudem können mehrere Dateien übertragen werden.

Die erste Zeile einer Request-Nachricht enthält immer den eigentlichen Request und wird daher Request-Line (s. RFC2616) genannt. Dort finden sich die Angabe der unterstützten Protokollversion (HTTP/1.1), Methode und Adresse (Ziel-URL). Im Message Header finden sich Meta-Informationen, z.B. die Browser-Kennung, die Länge des Bodys (in Byte) und der Content-Type (multipart). Die hochzuladende Datei wird zusammen mit den Formulardaten im Message-Body übertragen. Die untenstehende Abbildung 2 stellt die Komponenten eines HTTP-Requests schematisch dar.

Welche Probleme gibt es bei HTTP?

Während FTP als zustandsbehaftetes Protokoll durch eine einleitende Authentifizierung eine Sitzung aufbaut und die dadurch gewonnenen Informationen über die Autorisierung des angemeldeten Benutzers auf jede nachfolgende Anfrage anwendet, bildet für die heutige Internetnutzung die Zustandslosigkeit von HTTP ein Problem: Mehrere Anfragen – auch desselben Senders – werden grundsätzlich als voneinander unabhängige Transaktionen behandelt. Insbesondere werden Anfragen ohne Bezug zu früheren Anfragen behandelt und keine Sitzungsinformationen ausgetauscht und/oder verwaltet. Dies kann erst auf Anwendungsebene implementiert werden.