HTTP
Hypertext Transfer Protocol (HTTP) ist ein Anwendungsschichtprotokoll zum Übertragen von Hypermedia-Dokumenten, wie z.B. HTML. Es wurde für die Kommunikation zwischen Webbrowsern und Webservern entwickelt, kann aber auch für andere Zwecke genutzt werden, wie z.B. für Maschine-zu-Maschine-Kommunikation, programmatischen Zugriff auf APIs und mehr.
HTTP folgt einem klassischen Client-Server-Modell, bei dem ein Client eine Verbindung öffnet, um eine Anfrage zu stellen, und dann wartet, bis er eine Antwort vom Server erhält. HTTP ist ein zustandsloses Protokoll, was bedeutet, dass der Server zwischen zwei Anfragen keine Sitzungsdaten speichert, obwohl die spätere Hinzufügung von Cookies zu einigen Client-Server-Interaktionen Zustände hinzufügt.
Referenzdokumentation
Die HTTP-Referenzdokumentation enthält detaillierte Informationen über Header, Anfragemethoden, Statusantworten und listet relevante Spezifikationen und Standarddokumente auf.
- HTTP-Header
-
Nachrichtenheader werden verwendet, um Metadaten über eine Ressource oder eine HTTP-Nachricht zu senden und das Verhalten des Clients oder des Servers zu beschreiben.
- HTTP-Anfragemethoden
-
Anfragemethoden geben den Zweck der Anfrage an und was erwartet wird, wenn die Anfrage erfolgreich ist. Die gängigsten Methoden sind
GET
undPOST
, jeweils zum Abrufen und Senden von Daten an Server, aber es gibt andere Methoden, die unterschiedlichen Zwecken dienen. - HTTP-Antwortstatuscodes
-
Antwortstatuscodes geben das Ergebnis einer spezifischen HTTP-Anfrage an. Antworten werden in fünf Klassen gruppiert: informativ, erfolgreich, Umleitungen, Client-Fehler und Server-Fehler.
- HTTP-Ressourcen und Spezifikationen
-
Diese Seite listet relevante Ressourcen über HTTP auf, seit es in den frühen 1990er Jahren erstmals spezifiziert wurde.
Die folgenden Unterabschnitte sind ebenfalls bemerkenswert:
- CSP-Direktiven
-
Der
Content-Security-Policy
(CSP) Antwortheader ermöglicht es Website-Administratoren, anzugeben, welche Ressourcen der Benutzeragent für eine bestimmte Seite laden darf. Dieser Abschnitt listet Direktiven auf, die in einem CSP-Header verwendet werden können, mit individuellen Dokumentationsseiten, die beschreiben, wie die Direktiven funktionieren und wie sie zu verwenden sind. - Permissions-Policy-Direktiven
-
Der
Permissions-Policy
Antwortheader stellt einen Mechanismus zur Verfügung, um die Nutzung 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, mit individuellen Dokumentationsseiten, die beschreiben, wie die Direktiven funktionieren und wie sie zu verwenden sind.
HTTP-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 basiert. Auf diesen Konzepten basierend wurden im Laufe der Jahre zahlreiche Erweiterungen entwickelt, die Funktionalitäten und aktualisierte Semantiken hinzufügen, einschließlich zusätzlicher HTTP-Methoden und Header.
Die unten aufgeführten Leitfäden sind in der Reihenfolge von allgemeinen Übersichten zu speziellen, anwendungsfallgesteuerten Themen aufgeführt. Anfängern wird empfohlen, mit den grundlegenden Leitfäden zu beginnen, bevor sie sich auf spezialisiertere Artikel einlassen.
- Überblick über HTTP
-
Die grundlegenden Funktionen von HTTP, was es kann, seine beabsichtigte Verwendung in der Webarchitektur und seine Position im Protokoll-Stack.
- Entwicklung von HTTP
-
HTTP wurde in den frühen 1990er Jahren erstellt und mehrfach erweitert. Dieser Artikel behandelt seine Geschichte und beschreibt HTTP/0.9, HTTP/1.0, 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, von der Herstellung einer Verbindung, über das Senden einer Anfrage bis hin zum Empfangen einer Antwort.
- HTTP-Nachrichten
-
HTTP-Nachrichten, die als Anfragen und Antworten übertragen werden, haben eine definierte Struktur. Dieser Artikel beschreibt diese allgemeine Struktur, ihren Zweck und die verschiedenen Arten von Nachrichten.
- MIME-Typen
-
Seit HTTP/1.0 können verschiedene Arten von Inhalten übertragen werden. Dieser Artikel erklärt, wie dies mithilfe des
Content-Type
Headers und des MIME-Standards erreicht wird. Eine kurze Liste gängiger Typen, die von Webentwicklern verwendet werden, finden Sie unter Häufige MIME-Typen. - Kompression in HTTP
-
Browser und Server komprimieren ihre Nachrichten, bevor sie über das Netzwerk gesendet werden, um die zu übertragende Datenmenge zu reduzieren und die Übertragungsgeschwindigkeit sowie die Bandbreitennutzung zu verbessern.
- HTTP-Caching
-
Caching ist ein äußerst wichtiger Mechanismus, um schnelle Erlebnisse im Web zu liefern und Ressourcen effizient zu nutzen. Dieser Artikel beschreibt verschiedene Methoden des Cachings und wie HTTP-Header zur Steuerung genutzt werden können.
- HTTP-Authentifizierung
-
Authentifizierung ist eine Möglichkeit, um die Identität eines Clients zu überprüfen, wenn Anfragen an einen Server gestellt werden. Dadurch wird sichergestellt, dass nur autorisierte Benutzer oder Systeme auf bestimmte Ressourcen zugreifen können.
-
Obwohl HTTP ein zustandsloses Protokoll ist, kann ein Server mit der Antwort einen
Set-Cookie
Header senden. Der Client sendet dann den Wert des Cookies mit jeder nachfolgenden Anfrage an den Server in Form einesCookie
Anfrage-Headers zurück. Dies fügt die Fähigkeit hinzu, eine kleine Menge an Daten zu speichern und auszutauschen, die effektiv Zustände zu einigen Client-Server-Interaktionen hinzufügt. - Weiterleitungen in HTTP
-
URL-Weiterleitung, auch bekannt als URL-Weiterleitung, ist eine Technik, um einer Seite, einem Formular, einer ganzen Website oder einer Webanwendung mehr als eine URL-Adresse zuzuweisen. HTTP hat eine spezielle Art von Antwort, genannt HTTP-Weiterleitung, für diese Operation.
- Konditionale HTTP-Anfragen
-
Bei konditionalen Anfragen hängt das Ergebnis einer Anfrage vom Wert eines Validators in der Anfrage ab. Diese Methode wird häufig im Caching und in Anwendungsfällen wie der Fortsetzung eines Downloads, der Verhinderung verlorener Aktualisierungen bei der Bearbeitung eines Dokuments auf dem Server und mehr verwendet.
- HTTP-Bereichsanfragen
-
Eine Bereichsanfrage bittet den Server, einen bestimmten Teil (oder Teile) einer Ressource an einen Client zu senden, anstatt die gesamte Ressource. Bereichsanfragen sind nützlich für Fälle, in denen ein Client weiß, dass er nur einen Teil einer großen Datei benötigt, oder für Fälle, in denen eine Anwendung dem Benutzer ermöglicht, einen Download zu pausieren und fortzusetzen.
- Inhaltsaushandlung
-
HTTP definiert eine Reihe von Nachrichten-Headern, beginnend mit
Accept
, als eine Möglichkeit für einen Browser anzugeben, welches Format, welche Sprache oder welche Codierung er bevorzugt. Dieser Artikel erklärt, wie diese Ankündigung erfolgt, wie der Server erwartet wird zu reagieren und wie er die am besten geeignete Antwort auf eine Anfrage auswählt. - Verbindungsmanagement in HTTP/1.x
-
HTTP/1.1 war die erste Version von HTTP, die permanente Verbindungen und Pipelining unterstützte. Dieser Artikel erklärt beide Konzepte, einschließlich der Vor- und Nachteile jedes einzelnen.
- Protokoll-Upgrademechanismus
-
HTTP/1.1 bietet einen Mechanismus, um eine bereits hergestellte Verbindung auf ein anderes Protokoll mit dem
Upgrade
Header zu aktualisieren. Ein Client kann eine Verbindung von HTTP/1.1 zu HTTP/2 aufrüsten oder eine HTTP(S)-Verbindung zu einem WebSocket (ws
/wss
). - Proxy-Server und Tunneling
-
Ein Proxy kann auf dem lokalen Computer des Benutzers oder irgendwo zwischen dem Computer des Benutzers und einem Zielserver im Internet liegen. Diese Seite umfasst einige Grundlagen zu Proxys und stellt ein paar Konfigurationsoptionen vor.
- HTTP-Client-Hints
-
Client-Hints sind eine Reihe von Antwort-Headern, die ein Server verwenden kann, um proaktiv Informationen vom Client über das Gerät, das Netzwerk, Benutzer- und Benutzeragent-spezifische Präferenzen anzufordern. Der Server kann dann basierend auf den Informationen, die der Client bereitzustellen wählt, entscheiden, welche Ressourcen gesendet werden.
- Netzwerkfehlerprotokollierung Experimentell
-
Die Netzwerkfehlerprotokollierung ist ein Mechanismus, der über den
NEL
HTTP-Antwortheader konfiguriert werden kann. Dieser experimentelle Header ermöglicht es Websites und Anwendungen, Berichte über fehlgeschlagene (oder sogar erfolgreiche) Netzwerkabrufe von unterstützenden Browsern zu erhalten. - Browsererkennung mithilfe des User-Agent
-
Es ist sehr selten eine gute Idee, User-Agent-Sniffing zu verwenden, um einen Browser zu erkennen, aber es gibt Sonderfälle, die dies erfordern. Dieses Dokument wird Sie dabei anleiten, dies so korrekt wie möglich zu tun, wenn es notwendig ist, mit einem Schwerpunkt auf Überlegungen, die vor Beginn dieses Vorgangs getroffen werden sollten.
Sicherheit und Datenschutz
- Permissions Policy
-
Permissions Policy bietet Mechanismen für Webentwickler, um ausdrücklich zu deklarieren, welche Funktionalität auf einer Website verwendet werden kann und welche nicht. Sie definieren einen Satz von "Richtlinien", 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)
-
Cross-Site HTTP-Anfragen sind Anfragen nach Ressourcen von einer anderen Domain als der, von der die Anfrage gestellt wird. Web-Seiten laden heute sehr häufig Cross-Site-Ressourcen, zum Beispiel fordert eine Seite 'Domain A' (
http://domaina.example/
) ein Bild auf 'Domain B' (http://domainb.foo/image.jpg
) über dasimg
Element an. CORS ermöglicht es Webentwicklern, zu kontrollieren, wie ihre Website auf Cross-Site-Anfragen reagiert. - Content Security Policy (CSP)
-
CSP ermöglicht es Website-Administratoren, den
Content-Security-Policy
Antwortheader zu verwenden, um zu kontrollieren, welche Ressourcen der Client für eine bestimmte Seite laden darf. Der CSP-Leitfaden beschreibt den allgemeinen Content Security Policy-Mechanismus, der hilft, bestimmte Arten von Angriffen wie Cross-Site-Scripting (XSS) und Dateneinspritzungsangriffe zu erkennen und zu mindern. - Cross-Origin Resource Policy (CORP)
-
CORP ermöglicht es Websites und Anwendungen, sich für den Schutz gegen spezifische Anfragen anderer Ursprünge zu entscheiden (wie diejenigen, die mit Elementen wie
<script>
und<img>
ausgeführt werden), um spekulative Seitenkanalangriffe zu mindern. - Mozilla Web-Sicherheitsrichtlinien
-
Eine Sammlung von Tipps, um operativen Teams bei der Erstellung sicherer Webanwendungen zu helfen.
Verwandte Ressourcen
- URIs
-
Uniform Resource Identifiers (URIs) werden verwendet, um Ressourcen im Web zu beschreiben und zu lokalisieren und sind ein wesentlicher Bestandteil von HTTP-Anfragen.
- Konfiguration von Servern für Ogg-Medien
-
Dieser Leitfaden behandelt einige Serverkonfigurationsänderungen, die möglicherweise für Ihren Webserver erforderlich sind, um Ogg-Mediendateien korrekt zu bedienen. Diese Informationen können auch nützlich sein, wenn Sie auf andere Medientypen stoßen, die Ihr Server noch nicht zu erkennen konfiguriert ist.
Werkzeuge & Ressourcen
Hilfreiche Werkzeuge und Ressourcen zum Verständnis und Debuggen von HTTP.
- Firefox Developer Tools
- HTTP Observatory
-
Ein Projekt, das Entwicklern, Systemadministratoren und Sicherheitsexperten helfen soll, ihre Websites sicher und geschützt zu konfigurieren.
- RedBot
-
Werkzeuge zur Überprüfung Ihrer Cache-bezogenen Header.
- nghttp2
-
Eine HTTP/2-Client-, Server- und Proxy-Implementierung, geschrieben in C mit Lasttest- und Benchmarking-Tools sowie einem HPACK-Encoder und -Decoder.
- curl
-
Ein Kommandozeilen-Tool zum Übertragen von Daten, die mit URL-Syntax angegeben sind. Unterstützt HTTP, HTTPS, WS, WSS, unter vielen anderen Protokollen.
- How Browsers Work (2011)
-
Ein sehr umfassender Artikel über die internen Abläufe von Browsern und den Anforderungsfluss durch das HTTP-Protokoll.