Web-Schnittstelle - Kommunikation über HTTP
Web-Schnittstelle - Kommunikation über HTTP Kommunikation im Internet über HTTP Das HTTP ist ein sogenanntes "Klartext"-Protokoll. Die Kommunikation erfolgt dabei über Zeichenfolgen, die auch vom Benutzer gelesen werden können. Das Protokoll verwendet ein System von Anfragen und Antworten. Nach dem Eintragen einer Web-Adresse in einem Browser wird der Name des Web-Servers in eine IP-Nummer umgesetzt (dies geschieht normalerweise durch einen DNS-Server) und eine Verbindung zum HTTP-Server aufgebaut. Bei dem Link http://www.vectorsoft.de/default.htm wird der Name www.vectorsoft.de in die IP-Adresse 62.132.119.100 umgesetzt. Der Verbindungsaufbau und die Kontrolle der Verbindung wird durch die unter HTTP liegende Protokollschicht (dem Internet-Protokoll TCP/IP) durchgeführt. Steht diese Verbindung, wird ein Request (Anfrage) an den Server gesendet, woraufhin dieser eine Response (Antwort) zurücksendet:
- Request: GET /default.htm HTTP/1.0
- Response: Inhalt der Datei DEFAULT.HTM
Der Request beinhaltet mindestens die Anfragemethode (GET), die angeforderte Ressource (/default.htm) und die vom Browser unterstützte Protokollversion (HTTP/1.0). Nach der Übertragung der Ressource wird die Verbindung zwischen Browserrechner und Web-Server wieder abgebaut. Der hier dargestellte Fall ist stark vereinfacht, da oft andere Rechner zum Verbindungsaufbau beitragen, wie zum Beispiel Gateways oder Proxy-Server, bei denen der Request und Response zwischengespeichert und/oder eine Umsetzung von IP-Adressen stattfinden kann. Neben der Methode (beispielsweise GET) können weitere Informationen im Request übermittelt werden. Der Request-Header enthält in der Regel Informationen über den Browserrechner. Die Informationen sind in dem Format <Bezeichner>: <Wert> abgelegt. Die Bezeichner im Header sind nur zum Teil standardisiert und sind nicht zwingend für die Kommunikation notwendig. Der oben stehende Request könnte folgendermaßen aussehen:
GET /default.htm HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, */*
UA-Pixels: 1024x768
UA-Color: color16
...
Die Informationen können vom Web-Server verwendet werden, um gegebenenfalls Rücksicht auf die Eigenschaften des Browsers und dessen Umgebung nehmen zu können. Neben der Methode GET sind noch weitere Request-Methoden definiert. Da vom Client nur die Methoden GET, POST und HEAD verarbeitet werden, soll an dieser Stelle noch auf die Methode POST eingegangen werden. Bei der Kommunikation zwischen Browser und Web-Server müssen häufig Benutzereingaben vom Browser an den Server übermittelt werden. Diese Daten werden z. B. in einer HTML-Seite in ein Formular eingetragen. In folgender Seite soll ein Name und Vorname eingetragen werden:
<html><head></head><body>
<form>
Name: <input name="Name"><br>
Vorname: <input name="Vorname"><br>
<input type="submit><input type="reset">
</form>
</body></html>
Die Formulardaten können sowohl mit der Methode GET als auch mit POST übertragen werden, die Methoden unterscheiden sich dabei in der Art der Datenübermittlung. Wird die Methode GET verwendet, werden die Daten in der URL mit übergeben. Wurde also beim Namen Doe und bei Vorname John eingegeben entsteht folgender Request:
GET /scripts/c16_web.dll?Name=Doe&Vorname=John HTTP/1.0
<Header>
Die eingegebenen Informationen werden nach dem Fragezeichen, im sogenannten Query-String, hinter der Ressource angegeben. Bei Verwendung der Methode POST werden die Daten nach dem Header übertragen. Der Request würde also wie folgt aussehen:
POST /scripts/c16_web.dll HTTP/1.0
<Header>
<Leerzeile>
Name=Doe
Vorname=John
Die verwendete Methode kann im <form>-Tag angegeben werden: <form method=post>. Die Methode POST sollte verwendet werden, wenn das Formular größere Datenmengen beinhalten kann. Die Länge des Query-Strings ist auf 4 KB beschränkt, sollte aber nicht mehr als 1 KB beinhalten. Die Antwort auf ein Request des Browsers beinhaltet neben dem angeforderten Dokument auch einen Header. Dieser Header wird vom Browser ausgewertet und enthält Informationen über den Response-Body. Eine der wichtigsten Informationen ist das Medium des Response-Bodys, welches durch einen entsprechenden MIME-Typ spezifiziert wird. Abhängig vom MIME-Typ entscheidet der Browser, was mit dem übermittelten Dokument geschehen soll. Ist das Dokument vom Typ text/html, wird der Inhalt im Browserfenster angezeigt. Kann der Nachrichten-Typ einer auf dem Browserrechner installierten Applikation zugeordnet werden (Plug-In), kann die Applikation aufgerufen und der Inhalt der Nachricht angezeigt werden. Der Umgang mit den im Response-Body enthaltenen Informationen hängen von den Einstellungen des Browsers ab. Weitere Einträge des Headers sind optional und dienen dem Browser beispielsweise zur Verwaltung seines Caches (Datum und Uhrzeit der letzten Änderung des Dokuments). Eine vollständige Dokumentation zu HTTP befindet sich in sogenannten RFC’s (Request for Comments). Die Definitionen befinden sich in
(für HTTP/1.0) und
(für HTTP/1.1).