HTTP: Hypertext Transfer Protocol
HTTP ist ein Protokoll der Anwendungsschicht zur Übertragung von Hypermedia-Dokumenten wie HTML. Es wurde für die Kommunikation zwischen Webbrowsern und Webservern entwickelt, kann aber auch für andere Zwecke verwendet werden, etwa für die Kommunikation zwischen Maschinen oder den programmatischen Zugriff auf APIs.
HTTP folgt einem klassischen Client-Server-Modell: Ein Client baut eine Verbindung auf, um eine Anfrage zu stellen, und wartet dann auf die Antwort des Servers. HTTP ist ein zustandsloses Protokoll. Das bedeutet, dass der Server zwischen zwei Anfragen keine Sitzungsdaten speichert. Die später eingeführten Cookies ermöglichen jedoch bei manchen Client-Server-Interaktionen die Speicherung von Zustandsinformationen.
Leitfäden
HTTP ist ein erweiterbares Protokoll, das auf Konzepten wie Ressourcen und Uniform Resource Identifiers (URIs), einer grundlegenden Nachrichtenstruktur und einem Client-Server-Kommunikationsmodell beruht. Auf dieser Grundlage wurden im Laufe der Jahre zahlreiche Erweiterungen entwickelt, die Funktionen und aktualisierte Semantik hinzufügen, darunter weitere HTTP-Methoden und -Header.
Die HTTP-Leitfäden sind von allgemeinen Übersichten bis hin zu spezialisierten, anwendungsbezogenen Themen geordnet. Einsteigern wird empfohlen, mit den grundlegenden Leitfäden zu beginnen, bevor sie sich mit spezielleren Artikeln befassen.
- Überblick über HTTP
-
Die grundlegenden Eigenschaften von HTTP, seine Möglichkeiten, seine vorgesehene Verwendung in der Webarchitektur und seine Position im Protokollstapel.
- Entwicklung von HTTP
-
HTTP wurde Anfang der 1990er-Jahre entwickelt und seitdem mehrfach erweitert. Dieser Artikel zeichnet seine Geschichte nach und beschreibt HTTP/0.9, HTTP/1.0 und HTTP/1.1 bis hin zu HTTP/2 und HTTP/3 sowie Neuerungen, die im Laufe der Jahre eingeführt wurden.
- Eine typische HTTP-Sitzung
-
Beschreibt den Ablauf einer HTTP-Sitzung – vom Aufbau einer Verbindung über das Senden einer Anfrage bis zum Empfang einer Antwort.
- HTTP-Nachrichten
-
HTTP-Nachrichten, die als Anfragen und Antworten übertragen werden, haben eine festgelegte Struktur. Dieser Artikel beschreibt diese allgemeine Struktur, ihren Zweck und die verschiedenen Nachrichtentypen.
- MIME-Typen
-
Seit HTTP/1.0 können verschiedene Arten von Inhalten übertragen werden. Dieser Artikel erklärt, wie dies mithilfe des Headers
Content-Typeund des MIME-Standards funktioniert. Eine kurze Liste gängiger Typen, die Webentwickler verwenden, finden Sie unter Gängige MIME-Typen. - Komprimierung in HTTP
-
Browser und Server komprimieren ihre Nachrichten, bevor sie sie über das Netzwerk senden. Dadurch müssen weniger Daten übertragen werden, was die Übertragungsgeschwindigkeit und die Ausnutzung der Bandbreite verbessert.
- HTTP-Caching
-
Caching ist ein wichtiger Mechanismus, um schnelle Nutzungserlebnisse im Web zu ermöglichen und Ressourcen effizient einzusetzen. Dieser Artikel beschreibt verschiedene Caching-Methoden und wie sie sich mithilfe von HTTP-Headern steuern lassen.
- HTTP-Authentifizierung
-
Mithilfe der Authentifizierung lässt sich die Identität eines Clients überprüfen, wenn er Anfragen an einen Server stellt. Sie stellt sicher, dass nur autorisierte Benutzer oder Systeme auf bestimmte Ressourcen zugreifen können.
-
Obwohl HTTP ein zustandsloses Protokoll ist, kann ein Server mit seiner Antwort einen
Set-Cookie-Header senden. Der Client sendet den Wert des Cookies anschließend bei jeder weiteren Anfrage an den Server in Form einesCookie-Anfrage-Headers zurück. So können kleine Datenmengen gespeichert und ausgetauscht werden, wodurch manche Client-Server-Interaktionen Zustandsinformationen erhalten. - Weiterleitungen in HTTP
-
Eine URL-Weiterleitung ist eine Technik, mit der eine Seite, ein Formular, eine ganze Website oder eine Webanwendung unter mehreren URL-Adressen erreichbar gemacht wird. HTTP stellt für diesen Vorgang eine besondere Art von Antwort bereit, die HTTP-Weiterleitung.
- Bedingte HTTP-Anfragen
-
Bei bedingten Anfragen hängt das Ergebnis einer Anfrage vom Wert eines Validators in der Anfrage ab. Diese Methode wird häufig beim Caching sowie für Anwendungsfälle wie das Fortsetzen eines Downloads oder das Verhindern verlorener Änderungen bei der Bearbeitung eines Dokuments auf dem Server eingesetzt.
- HTTP-Bereichsanfragen
-
Bei einer Bereichsanfrage wird der Server aufgefordert, statt der vollständigen Ressource einen bestimmten Teil oder mehrere Teile davon an einen Client zurückzusenden. Bereichsanfragen sind nützlich, wenn ein Client nur einen Teil einer großen Datei benötigt oder wenn eine Anwendung Benutzern ermöglicht, einen Download anzuhalten und fortzusetzen.
- Content Negotiation
-
HTTP definiert eine Reihe von Nachrichten-Headern, beginnend mit
Accept, über die ein Browser sein bevorzugtes Format, seine bevorzugte Sprache oder Codierung mitteilen kann. Dieser Artikel erklärt, wie diese Mitteilung erfolgt, wie der Server darauf reagieren soll und wie er die am besten geeignete Antwort auf eine Anfrage auswählt. - Verbindungsverwaltung in HTTP/1.x
-
HTTP/1.1 war die erste HTTP-Version, die persistente Verbindungen und Pipelining unterstützte. Dieser Artikel erläutert beide Konzepte sowie ihre jeweiligen Vor- und Nachteile.
- Mechanismus für Protokoll-Upgrades
-
HTTP/1.1 bietet einen Mechanismus, um eine bereits bestehende Verbindung mithilfe des Headers
Upgradeauf ein anderes Protokoll umzustellen. Ein Client kann eine Verbindung von HTTP/1.1 auf HTTP/2 oder eine HTTP(S)-Verbindung auf WebSocket (ws/wss) umstellen. - Proxyserver und Tunneling
-
Ein Proxy kann sich auf dem lokalen Computer eines Benutzers oder an einer beliebigen Stelle zwischen diesem Computer und einem Zielserver im Internet befinden. Diese Seite erläutert einige Grundlagen zu Proxys und stellt einige Konfigurationsmöglichkeiten vor.
- HTTP Client Hints
-
Client Hints sind eine Reihe von Antwort-Headern, mit denen ein Server proaktiv Informationen über das Gerät, das Netzwerk, den Benutzer und User-Agent-spezifische Präferenzen von einem Client anfordern kann. Anhand der Informationen, die der Client bereitstellt, kann der Server entscheiden, welche Ressourcen er sendet.
- Protokollierung von Netzwerkfehlern
-
Network Error Logging ist ein Mechanismus, der über den HTTP-Antwort-Header
NELkonfiguriert werden kann. Mit diesem experimentellen Header können Websites und Anwendungen festlegen, dass sie von unterstützenden Browsern Berichte über fehlgeschlagene – oder sogar erfolgreiche – Netzwerkabrufe erhalten möchten. - Browsererkennung anhand des User Agents
-
Die Erkennung eines Browsers anhand seines User Agents ist nur sehr selten eine gute Idee, kann aber in Ausnahmefällen erforderlich sein. Dieses Dokument zeigt Ihnen, wie Sie dabei gegebenenfalls möglichst korrekt vorgehen, und legt besonderen Wert auf Überlegungen, die Sie vor dieser Entscheidung anstellen sollten.
Sicherheit und Datenschutz
- Permissions Policy
-
Permissions Policy bietet Webentwicklern Mechanismen, mit denen sie ausdrücklich festlegen können, welche Funktionen auf einer Website verwendet werden dürfen und welche nicht. Dazu definieren Sie „Policies“, die einschränken, auf welche APIs der Code der Website zugreifen kann, oder das Standardverhalten des Browsers für bestimmte Funktionen ändern.
- Cross-Origin Resource Sharing (CORS)
-
Siteübergreifende HTTP-Anfragen fordern Ressourcen von einer anderen Domain als der Domain der anfragenden Ressource an. Webseiten laden heute häufig siteübergreifende Ressourcen. Beispielsweise fordert eine Seite auf „Domain A“ (
http://domaina.example/) über das Elementimgein Bild auf „Domain B“ (http://domainb.foo/image.jpg) an. Mit CORS können Webentwickler steuern, wie ihre Website auf siteübergreifende Anfragen reagiert. - Content Security Policy (CSP)
-
Mit dem Antwort-Header
Content-Security-Policykönnen Website-Administratoren festlegen, welche Ressourcen der Client für eine bestimmte Seite laden darf. Der CSP-Leitfaden beschreibt den allgemeinen Mechanismus von Content Security Policy, der dabei hilft, bestimmte Arten von Angriffen zu erkennen und abzuwehren, darunter Cross-Site Scripting (XSS) und Data-Injection-Angriffe. - Cross-Origin Resource Policy (CORP)
-
Mit CORP können Websites und Anwendungen Schutz vor bestimmten Anfragen von anderen Origins aktivieren, etwa vor Anfragen, die durch Elemente wie
<script>und<img>ausgelöst werden. So lassen sich spekulative Seitenkanalangriffe abschwächen. - Mozilla-Richtlinien zur Websicherheit
-
Eine Sammlung von Tipps, die Betriebsteams bei der Erstellung sicherer Webanwendungen unterstützt.
Verwandte Ressourcen
- URIs
-
Uniform Resource Identifiers (URIs) werden verwendet, um Ressourcen im Web zu beschreiben und zu lokalisieren. Sie sind ein wesentlicher Bestandteil von HTTP-Anfragen.
- Server für Ogg-Medien konfigurieren
-
Dieser Leitfaden behandelt einige Änderungen an der Serverkonfiguration, die möglicherweise erforderlich sind, damit Ihr Webserver Ogg-Mediendateien korrekt bereitstellt. Die Informationen können auch hilfreich sein, wenn Sie auf andere Medientypen stoßen, für deren Erkennung Ihr Server noch nicht konfiguriert ist.
Werkzeuge und Ressourcen
Hilfreiche Werkzeuge und Ressourcen zum Verständnis und zur Fehlersuche bei HTTP.
- Firefox-Entwicklerwerkzeuge
- HTTP Observatory
-
Ein Projekt, das Entwicklern, Systemadministratoren und Sicherheitsexperten hilft, ihre Websites sicher zu konfigurieren.
- RedBot
-
Werkzeuge zur Überprüfung Ihrer Caching-Header.
- nghttp2
-
Eine in C geschriebene HTTP/2-Implementierung für Clients, Server und Proxys mit Werkzeugen für Lasttests und Benchmarks sowie einem HPACK-Encoder und -Decoder.
- curl
-
Ein Kommandozeilenwerkzeug zum Übertragen von Daten, die mit URL-Syntax angegeben werden. Es unterstützt neben vielen anderen Protokollen HTTP, HTTPS, WS und WSS.
- Wie Browser funktionieren (2011)
-
Ein sehr umfassender Artikel über die internen Abläufe von Browsern und den Ablauf von Anfragen über das HTTP-Protokoll.
Referenz
Die HTTP-Referenz enthält detaillierte Informationen zu Headern, Anfragemethoden und Antwortstatuscodes sowie Listen relevanter Spezifikationen und Standarddokumente.
- HTTP-Header
-
Nachrichten-Header werden verwendet, um Metadaten über eine Ressource oder eine HTTP-Nachricht zu senden und das Verhalten des Clients oder Servers zu beschreiben.
- HTTP-Anfragemethoden
-
Anfragemethoden geben den Zweck einer Anfrage an und bestimmen, was bei einer erfolgreichen Anfrage erwartet wird. Die gebräuchlichsten Methoden sind
GETzum Abrufen undPOSTzum Senden von Daten an Server. Daneben gibt es weitere Methoden für andere Zwecke. - HTTP-Antwortstatuscodes
-
Antwortstatuscodes geben das Ergebnis einer bestimmten HTTP-Anfrage an. Antworten werden in fünf Klassen eingeteilt: informierende Antworten, erfolgreiche Antworten, Weiterleitungen, Clientfehler und Serverfehler.
- HTTP-Ressourcen und -Spezifikationen
-
Diese Seite listet relevante Ressourcen zu HTTP seit seiner ersten Spezifikation Anfang der 1990er-Jahre auf.
Auch die folgenden Unterabschnitte sind erwähnenswert:
- CSP-Direktiven
-
Mit dem Antwort-Header
Content-Security-Policy(CSP) können Website-Administratoren festlegen, welche Ressourcen der User Agent für eine bestimmte Seite laden darf. Dieser Abschnitt listet Direktiven auf, die in einem CSP-Header verwendet werden können. Eigene Dokumentationsseiten beschreiben jeweils, wie die Direktiven funktionieren und wie sie verwendet werden. - Permissions-Policy-Direktiven
-
Der Antwort-Header
Permissions-Policybietet einen Mechanismus, um die Verwendung von Browserfunktionen in einem Dokument oder innerhalb eines<iframe>-Elements im Dokument zu erlauben oder zu verweigern. Dieser Abschnitt listet Direktiven auf, die in einem Permissions-Policy-Header verwendet werden können. Eigene Dokumentationsseiten beschreiben jeweils, wie die Direktiven funktionieren und wie sie verwendet werden.