HTTP-GET-Methode

Interaktives Senden & Empfangen

Interaktive Steuerung mit der HTTP-GET-Methode

Der Empfänger muss ein Programm enthalten, welches die optionalen User-Daten liest und sinnvoll darauf reagiert. Dazu eignen sich alle modernen Programmiersprachen.

Zielgruppe dieser Webseite sind StudentInnen und ambitionierte Informatik-Amateure

Für die Live-Beispiel sind keine Vorkenntnisse notwendig. Zum Programmieren von Sender-Formularen genügen Grundkenntnisse von HTML, zum Empfang sind Kenntnisse einer Programmiersprache erforderlich.


Live-Beispiel der HTTP-GET-Methode



Die Empfänger-Webseite demonstriert einfache Möglichkeiten zur Verarbeitung der empfangenen Daten.

Als Nachweise des Empfangs wird die Uhrzeit (des Servers) angezeigt.

Der Text wird genauso angezeigt wie im Text-Feld des Senders. Das ist nicht so einfach, wie es aussieht, weil der Text für den Transport speziell codiert und beim Empfang wieder decodiert wurde.

Alle weiteren Daten werden zur Formatierung verwendet:
Die Text-Farbe entspricht dem ausgewählten Options-Schalter, der Hintergrund dem Zustand des Markierungs-Kästchens.

Live-Experiment




Sie können Zahlen in die beiden Text-Felder des Zeit-Senders eintragen und damit die digitale und analoge Ausgabe der Zeit im Empfänger-Dokument steuern.



In diesem Beispiel folgt nach einem ? Fragezeichen ein weiterer Text (QUERYSTRING), welcher die zuletzt eingegebenen Daten der Stunden und Minuten enthält.

Die beiden GET-Argumente sind durch ein & Zeichen getrennt.

Jedes GET-Argument beginnt mit dem Namen, nach einem = Zeichen folgt der Wert.

Der QUERYSTRING-Text darf kein Leerzeichen enthalten.



Erklärung:
Die HTTP-GET-Methode erlaubt es, mit dem Text der Web-Adresse fast beliebig viele Daten zu transportieren, wenn diese nach den Regeln der GET-Syntax an den Datei-Pfad angehängt werden.

Es spielt keine Rolle, ob der QUERYSTRING von einem Formular, von einem Programm oder manuell von einem Menschen zusammengestellt wurde.



Als Ergebnis der Auswertung wird meistens eine 'Dynamische Webseite' an den Browser des Clients gesendet. Das Wort 'Dynamisch' bringt im Gegensatz zu 'Statisch' zum Ausdruck, dass Form und Inhalt variabel sind. Es ist zwar technisch nicht notwendig, in der Praxis aber wichtig, dem User eine Rückmeldung zu geben.

Zwischen Empfang eines Auftrags mit GET-Argumenten und Rücksendung einer Antwort-Webseite kann ein Programm jede denkbare Tätigkeit ausführen.
Beispiele: Buchung einer Webshop-Bestellung, Einschalten einer Beleuchtung, Steuerung eines Motors, usw.

Alternativ zur GET-Methode kann man auch die HTTP-POST-Methode für den gleichen Zweck verwenden. Die Wahl der Methode ist jedoch für dieses einfache Beispiel belanglos. Daher wird hier die leichter verständliche und einfacher beeinflussbare GET-Methode vorgestellt.



Ein gutes Programm muss darüber hinaus noch wesentlich mehr Aufgaben erfüllen. Es sollte z.B. auf fehlende oder falsche Angaben sinnvoll reagieren.
Die Programmierung derartiger zusätzlicher Aufgaben vergrößert den Aufwand meist auf das 10- bis 100-fache.


Ergebnis: Es gibt kein Programm, welches alle denkbaren Probleme so löst, dass alle AnwenderInnen damit zufrieden sind.

Als EntwicklerIn muss man gelegentlich Entscheidungen für eine von mehreren Lösungen treffen. Als Faustregel kann man jene Lösungen bevorzugen, die von der Mehrheit der AnwenderInnen als sinnvoll empfunden wird.

Als Auftrag-Geber sollten sie nicht nur auf die Lösung einer Aufgabe achten, sondern auch auf die Behandlung typischer Fehler, Ausnahmen und Sonderfälle.

HTTP/2


Alle modernen Browser unterstützen bereits HTTP/2.

Der meist-verwendete Webserver Apache und der Hochleistungs-Server NGIИX bieten gute Unterstützung für HTTP/2, die Konfiguration ist allerdings noch verbesserungsfähig. Es wird einige Jahre dauern, bis die Mehrzahl der kleineren Webserver auf HTTP/2 umgestellt ist.

Auch Router- und Firewall-Programme müssen an den neuen Standard angepasst werden. Das wird wahrscheinlich noch lange daueren, weil man Änderungen an diesen kritischen Komponenten meist sehr konservativ und erst nach längeren Erfahrungen durchführt.

Die großen Internet-Konzerne haben besonderes Interesse an schnellen Verbindungen. Sie sind derzeit bereits Vorreiter bei der Umstellung auf HTTP/2.


Kompression

HTTP/2 verbessert die bereits jetzt bestehenden Möglichkeiten zur Kompression der Daten.

Die Größe von binären Daten (Grafik, Audio, Video) verringert sich nicht, weil man diese ohnehin nur in stark komprimierter Form speichert und transportiert.
Die Größe von Text-Daten (HTML, CSS, Javascript) wird durch Kompression stark verringert, wie man selbst leicht feststellen kann (z.B. mit ZIP). Diese Daten werden jedoch bereits jetzt in komprimierter Form transportiert, wenn das der jeweilige Browser akzeptiert.



Bei sinnvoller Anwendung könnte diese Technik die effektive Geschwindigkeit vermutlich merkbar erhöhen.

Die Zukunft wird zeigen, ob das PUSH-Verfahren auf sinnvolle Fälle begrenzt wird, oder ob man damit unverlangte Daten an die AnwenderInnen senden kann - so ähnlich wie schon jetzt die Flut an unerwünschter Werbung.


HTTP/2-Links  bei GitHub (FAQ), Wikipedia, Chip, IETF