Suchen

Definition: Hypertext Transfer Protocol Was ist HTTP?

Autor / Redakteur: Dirk Srocke / Florian Karlstetter

Das Hypertext Transfer Protocol fungiert nicht nur als Basis des World Wide Web, sondern taugt auch für weitere Anwendungen. Ursprünglich am CERN entworfen, wird das zustandslose Protokoll aktuell unter Obhut der IETF weiterentwickelt.

Firmen zum Thema

Hypertext Transfer Protocol - zustandsloses Protokoll zur Übertragung von Daten und zum Laden von Webseiten - eine Definition.
Hypertext Transfer Protocol - zustandsloses Protokoll zur Übertragung von Daten und zum Laden von Webseiten - eine Definition.
(Bild: gemeinfrei (geralt / pixabay) / Pixabay )

Mit dem Hypertext Transfer Protocol (HTTP) kommen Nutzer eines Webbrowsers immer dann in Berührung, wenn sie die Webseiten eines entfernten Servers laden. Naheliegenderweise bezeichnen Andrew S. Tanenbaum und David J. Wetherall das Verfahren als Muttersprache des Webs – nachzulesen in der fünften Auflage ihres Lehrbuchs „Computer Networks“.

Das 2014 von der Internet Engineering Task Force (IETF) veröffentlichte RFC 7231 charakterisiert HTTP derweil allgemeiner als zustandsloses Protokoll, das auf Anwendungsebene angesiedelt ist und sich für verteilte, kollaborative Hypertextinformationssysteme eigne.

REST steht für REpresentational State Transfer, API für Application Programming Interface - beides dient der M2M-Kommunikation.

Definition: Representational State Transfer (REST) Application Programming Interface (API)

Was ist eine REST API?

Einsatzgebiete abseits des klassischen Webs erkennen übrigens auch Tanenbaum und Wetherall; sie beschreiben HTTP als eine Art Transportprotokoll, dank dessen verschiedene Prozesse über die Grenzen unterschiedlicher Netzwerke hinweg miteinander kommunizieren können. Als Beispiel nennen die Autoren etwa verschiedene Machine-to-Machine-Szenarien sowie Medienplayer oder Antivirusprogramme, die Daten und Updates von entfernten Servern beziehen.

Für die universellen Qualitäten von HTTP sprechen zudem REST-Architekturen, deren Verhalten sich an Paradigmen und Verhalten des WWW orientieren. Explizit auf die Abstraktion per REST verweist auch der oben erwähnte RFC 7231. In diesem Sinne stellt HTTP eine einheitliche Schnittstelle bereit, um auf Ressourcen zuzugreifen – unabhängig von deren Ausprägung oder Implementierung.

Funktionsweise

Für die Kommunikation zwischen Clients und Servern definiert HTTP zweierlei Arten von Nachrichten (Messages). Dabei handelt es sich entweder um Anfragen (Request) oder Antworten (Response).

Die von den Clients gestellten Requests bestehen aus ASCII-Text – beginnend mit einer Methode, wahlweise gefolgt von weiteren Informationen (request headers). Gemäß HTTP 1.1 müssen Server mindestens die Methoden GET und HEAD unterstützen. Mit GET erbitten Clients die aktuellen Darstellung einer kompletten Ressource – beispielsweise eines HTML-Dokumentes. HEAD erwartet derweil lediglich Statuszeile und Header.

Die berfügbaren Methoden beschränken sich allerdings nicht auf das bloße Abrufen von Webseiten. Zu weiteren Methoden für den Umgang mit Objekten zählen POST, PUT, DELETE, TRACE, CONNECT und OPTIONS.

Server erwarten eingehende Requests, verarbeiten diese und antworten schließlich per Response. Ein zurückgelieferter Statuscode signalisiert, wie erfolgreich die Anfrage aufgeführt wurde. Der Wert 200 steht beispielsweise für OK, also eine erfolgreiche durchgeführte Operation.

Ebenso wie auch die Requests können die vom Server verschickten Responses zusätzliches Informationen enthalten. Der Response Header „Last-Modified“ gibt etwa Auskunft darüber, wann das ausgelieferte Dokument zuletzt verändert wurde. Eine nützliche Information für die von HTTP vorgesehenen Caching-Verfahren.

Als Protokoll der Anwendungsschicht greift HTTP typischerweise auf das darunter liegende TCP-Verbindung über Port 80 zurück. Näheres dazu im folgenden Absatz zur Geschichte des Protokolls.

Geschichte und Ausblick

Die Ursprünge von HTTP sind eng mit der Entstehung des World Wide Web verbunden, das ab 1989 von Tim Berners-Lee sowie seinem Team am europäischen Kernforschungszentrum CERN erdacht wurde.

Seit Anfang der 1990er Jahre in Gebrauch, wurde Version 0.9 des Protokolls später als einfaches Protokoll für den Austausch roher Daten beschrieben.

Mit Version 1.0 folgten 1996 die Möglichkeit, Messages in einem MIME-Format samt Metainformationen zu übertragen.

HTTP 1.1 führte 1999 unter anderem persistente Verbindungen ein – wurden TCP-Verbindungen zuvor nach jedem übertragenen Element beendet, konnten nun mehrere Requests effizienter als zuvor über eine bestehende Verbindung abwickelt werden.

Das 2015 als Alternative zu HTTP 1.1 verabschiedete HTTP/2 die Effizienz weiter steigern, indem etwa Anfragen priorisiert und per Multiplex zusammengefasst werden. So sollen TCP-Verbindungen besser als bisher genutzt werden. Per „binary message framing“ ließen sich Message zudem effizienter verarbeiten.

Das aktuell diskutierte HTTP/3 soll auf dem Transportprotokoll QUIC aufsetzen.

Verschlüsselung über zusätzliche Ebene

Wenn HTTP über eine verschlüsselte Verbindung genutzt wird, spricht man von HTTPS respektive Secure HTTP. Dabei wird auf der Transportschicht eine zusätzliche Sicherheitsebene per SSL/TLS genutzt; als Port mitunter 443 statt 80 verwendet.

Weiter auf HTTP basierende Protokolle

Mit WebDAV (Web Distributed Authoring and Versioning) existiert schließlich ein auf HTTP 1.1 aufsetzendes Netzwerkprotokoll, mit dem sich Dateien per Internet bereitstellen lassen.

Auch das Netzwerkprotokoll SOAP stützt sich auf die Internetprotokolle HTTP und TCP.

(ID:46084583)