HTTP

Hypertext Transfer Protocol (HTTP) ist ein Anwendungsschichtprotokoll 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, wie die Kommunikation zwischen Maschinen, der programmatische Zugriff auf APIs und mehr.

HTTP folgt einem klassischen Client-Server-Modell, bei dem ein Client eine Verbindung öffnet, um eine Anforderung zu stellen, und dann wartet, bis er eine Antwort vom Server erhält. HTTP ist ein zustandsloses Protokoll, was bedeutet, dass der Server keine Sitzungsdaten zwischen zwei Anfragen speichert, obwohl die spätere Einführung von Cookies Zustand zu einigen Client-Server-Interaktionen hinzufügt.

Referenzen

Die HTTP-Referenzdokumentation enthält detaillierte Informationen über Header, Anfragemethoden, Statusantworten und listet relevante Spezifikationen und Standarddokumente auf.

HTTP-Header

Nachricht-Header werden verwendet, um Metadaten über eine Ressource oder eine HTTP-Nachricht zu senden und um das Verhalten des Clients oder des Servers zu beschreiben.

HTTP-Anfragemethoden

Anfragemethoden zeigen den Zweck der Anfrage an und was erwartet wird, wenn die Anfrage erfolgreich ist. Die häufigsten Methoden sind GET und POST zum Abrufen und Senden von Daten an Server, es gibt jedoch weitere Methoden, die andere Zwecke erfüllen.

HTTP-Antwortstatuscodes

Antwortstatuscodes zeigen das Ergebnis einer bestimmten HTTP-Anforderung an. Antworten werden in fünf Klassen gruppiert: informativ, erfolgreich, Umleitungen, Client-Fehler und Server-Fehler.

HTTP-Ressourcen und -Spezifikationen

Diese Seite führt relevante Ressourcen zu HTTP auf, seit es in den frühen 1990er Jahren erstmals spezifiziert wurde.

HTTP-Leitfäden

HTTP ist ein erweiterbares Protokoll, das auf Konzepten wie Ressourcen und Uniform Resource Identifiers (URIs), einer einfachen Nachrichtenstruktur und einem Client-Server-Kommunikationsmodell beruht. Auf diesen Konzepten basierend wurden im Laufe der Jahre zahlreiche Erweiterungen entwickelt, die Funktionalität und aktualisierte Semantik hinzufügen, einschließlich zusätzlicher HTTP-Methoden und -Header.

Die unten aufgeführten Leitfäden sind in der Reihenfolge von allgemeinen Übersichtsthemen zu spezialisierten, anwendungsfallgetriebenen Themen geordnet. Anfänger werden ermutigt, mit den grundlegenden Leitfäden zu beginnen, bevor sie sich eingehend mit spezifischeren Artikeln beschäftigen.

Überblick über HTTP

Die grundlegenden Funktionen von HTTP, was es leisten kann, sein beabsichtigter Einsatz in der Webarchitektur und seine Position im Protokollstapel.

Eine typische HTTP-Sitzung

Beschreibt den Ablauf einer HTTP-Sitzung, vom Herstellen 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 definierte Struktur. Dieser Artikel beschreibt diese allgemeine Struktur, ihren Zweck und die verschiedenen Nachrichtentypen.

URIs

Uniform Resource Identifiers (URIs) werden verwendet, um Ressourcen im Web zu beschreiben und zu lokalisieren und sind ein wesentlicher Bestandteil in HTTP-Anforderungen.

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 der gängigen Typen, die von Webentwicklern verwendet werden, finden Sie unter Häufige MIME-Typen.

Komprimierung in HTTP

Browser und Server komprimieren ihre Nachrichten vor dem Senden über das Netzwerk, um die Datenmenge zu reduzieren, die übertragen werden muss, was die Übertragungsgeschwindigkeit und die Bandbreitennutzung verbessert.

HTTP-Caching

Caching ist ein äußerst wichtiges Mechanismus zur Bereitstellung schneller Erlebnisse im Web und zur effizienten Ressourcennutzung. Dieser Artikel beschreibt verschiedene Methoden des Cachings und wie man HTTP-Header verwendet, um sie zu steuern.

HTTP-Authentifizierung

Authentifizierung ist eine Möglichkeit, die Identität eines Clients bei Anfragen an einen Server zu überprüfen. Es stellt sicher, dass nur autorisierte Benutzer oder Systeme auf bestimmte Ressourcen zugreifen können.

Verwendung von HTTP-Cookies

Obwohl HTTP ein zustandsloses Protokoll ist, kann ein Server einen Set-Cookie Header mit der Antwort senden. Der Client gibt dann den Wert des Cookies mit jeder nachfolgenden Anfrage an den Server in Form eines Cookie Anfrages-Headers zurück. Dies ermöglicht es, eine kleine Menge an Daten zu speichern und auszutauschen, was effektiv Zustand zu einigen Client-Server-Interaktionen hinzufügt.

Umleitungen 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 zu geben. HTTP hat eine spezielle Art von Antwort, genannt HTTP-Umleitung, für diese Operation.

HTTP-Bedingte Anfragen

Bei bedingten Anfragen hängt das Ergebnis einer Anfrage vom Wert eines Validierers in der Anfrage ab. Diese Methode wird häufig im Caching und in Anwendungsfällen wie dem Fortsetzen eines Downloads, dem Verhindern verlorener Aktualisierungen beim Ändern eines Dokuments auf dem Server und mehr verwendet.

HTTP-Bereichsanfragen

Eine Bereichsanfrage fordert den Server auf, einen bestimmten Teil (oder Teile) einer Ressource an einen Client zu senden, anstatt die gesamte Ressource. Bereichsanfragen sind nützlich in Fällen, in denen ein Client weiß, dass er nur einen Teil einer großen Datei benötigt, oder in Fällen, in denen eine Anwendung dem Benutzer erlaubt, einen Download zu pausieren und fortzusetzen.

Inhaltsverhandlungen

HTTP definiert eine Reihe von Nachricht-Headern, beginnend mit Accept als eine Möglichkeit für einen Browser, das Format, die Sprache oder die Kodierung zu annoncieren, die es bevorzugt. Dieser Artikel erklärt, wie diese Werbung stattfindet, wie der Server darauf reagieren soll und wie er die am besten geeignete Antwort auf eine Anforderung auswählt.

Verbindungsverwaltung in HTTP/1.x

HTTP/1.1 war die erste Version von HTTP, die persistente Verbindungen und Pipelining unterstützte. Dieser Artikel erklärt beide Konzepte, einschließlich der Vor- und Nachteile jedes einzelnen.

Entwicklung von HTTP

HTTP wurde in den frühen 1990er Jahren erstellt und mehrmals erweitert. Dieser Artikel geht durch seine Geschichte und beschreibt HTTP/0.9, HTTP/1.0, HTTP/1.1, bis hin zu HTTP/2 und HTTP/3, sowie die im Laufe der Jahre eingeführten Neuerungen.

Protokoll-Upgrade-Mechanismus

HTTP/1.1 bietet einen Mechanismus, um eine bereits hergestellte Verbindung mithilfe des Upgrade Headers auf ein anderes Protokoll zu aktualisieren. Ein Client kann eine Verbindung von HTTP/1.1 auf HTTP/2 oder eine HTTP(S)-Verbindung in einen WebSocket (ws / wss) aktualisieren.

Proxy-Server und Tunneling

Ein Proxy kann sich auf dem lokalen Computer des Benutzers oder überall zwischen dem Computer des Benutzers und einem Zielserver im Internet befinden. Diese Seite skizziert einige Grundlagen zu Proxies und führt einige Konfigurationsmöglichkeiten ein.

HTTP Client-Hinweise

Client-Hinweise sind eine Reihe von Antwort-Headern, die ein Server verwenden kann, um proaktiv Informationen von einem Client über das Gerät, das Netzwerk, Benutzervorlieben und spezifische Präferenzen des Benutzeragenten anzufordern. Der Server kann dann basierend auf den Informationen, die der Client bereitzustellen entscheidet, bestimmen, welche Ressourcen gesendet werden sollen.

Netzwerkfehlerprotokollierung Experimentell

Netzwerkfehlerprotokollierung ist ein Mechanismus, der über den NEL HTTP-Antwortheader konfiguriert werden kann. Dieser experimentelle Header ermöglicht es Websites und Anwendungen, sich anzumelden, um Berichte über fehlgeschlagene (oder sogar erfolgreiche) Netzwerkanfragen von unterstützenden Browsern zu erhalten.

Browser-Erkennung mithilfe des Benutzeragents

Es ist sehr selten eine gute Idee, Benutzeragent-Sniffing zu verwenden, um einen Browser zu erkennen, aber es gibt Randfälle, die es erfordern. Dieses Dokument wird Sie dabei anleiten, dies so korrekt wie möglich zu tun, wenn dies notwendig ist, mit einem Schwerpunkt auf Überlegungen, bevor Sie diesen Weg beschreiten.

Serverkonfiguration für Ogg-Medien

Dieser Leitfaden behandelt einige Serverkonfigurationsänderungen, die möglicherweise erforderlich sind, damit Ihr Webserver Ogg-Mediendateien korrekt bereitstellen kann. Diese Informationen können auch nützlich sein, wenn Sie auf andere Medientypen stoßen, die Ihr Server noch nicht zu erkennen konfiguriert ist.

Sicherheit und Datenschutz

Mozilla-Websicherheitsrichtlinien

Eine Sammlung von Tipps, um Betriebsteams bei der Erstellung sicherer Webanwendungen zu helfen.

Berechtigungsrichtlinie

Die Berechtigungsrichtlinie bietet Mechanismen für Webentwickler, um explizit zu erklären, welche Funktionalitäten auf einer Website verwendet werden dürfen und welche nicht. Sie definieren eine Reihe von "Richtlinien", die einschränken, auf welche APIs der Code der Website zugreifen kann oder das Standardverhalten des Browsers für bestimmte Funktionen ändern können.

Cross-Origin Resource Sharing (CORS)

Cross-Site-HTTP-Anfragen sind Anfragen nach Ressourcen von einer anderen Domain als der der Ressource, die die Anfrage stellt. Webseiten 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 das img-Element an. CORS ermöglicht Webentwicklern die Kontrolle darüber, wie ihre Seite auf plattformübergreifende Anfragen reagiert.

Content Security Policy (CSP)

CSP erlaubt es Webseitenadministratoren, den Content-Security-Policy Antwortheader zu verwenden, um zu kontrollieren, welche Ressourcen der Client für eine gegebene Seite laden darf. Der CSP-Leitfaden beschreibt den gesamten Content Security Policy Mechanismus, der hilft, bestimmte Arten von Angriffen wie Cross-Site Scripting (XSS) und Dateninjektionsangriffe zu erkennen und zu mildern.

Cross-Origin Resource Policy (CORP)

CORP ermöglicht es Websites und Anwendungen, sich für Schutz gegen spezifische Anfragen von anderen Ursprüngen (wie jene, die mit Elementen wie <script> und <img> ausgeführt werden) zu entscheiden, um spekulative Seitenkanalangriffe zu mildern.

Tools & Ressourcen

Hilfreiche Tools und Ressourcen zum Verstehen und Debuggen von HTTP.

Firefox-Entwicklertools

Netzwerkmonitor

HTTP Observatory

Ein Projekt, das Entwicklern, Systemadministratoren und Sicherheitsexperten helfen soll, ihre Seiten sicher und geschützt zu konfigurieren.

RedBot

Tools zur Überprüfung Ihrer cachebezogenen 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 Befehlszeilenwerkzeug zum Übertragen von Daten, die mit URL-Syntax angegeben sind. Unterstützt HTTP, HTTPS, WS, WSS, unter vielen anderen Protokollen.

Wie Browser funktionieren (2011)

Ein sehr umfassender Artikel über die internen Abläufe von Browsern und den Anforderungsfluss durch das HTTP-Protokoll.