www.wikidata.de-de.nina.az
Das Hypertext Transfer Protocol HTTP englisch fur Hypertext Ubertragungsprotokoll ist ein 1991 eingefuhrtes zustandsloses Protokoll zur Ubertragung von Daten auf der Anwendungsschicht uber ein Rechnernetz Es wird hauptsachlich eingesetzt um Webseiten Hypertext Dokumente aus dem World Wide Web WWW in einen Webbrowser zu laden Es ist jedoch nicht prinzipiell darauf beschrankt und auch als allgemeines Dateiubertragungsprotokoll sehr verbreitet Hypertext Transfer ProtocolFamilie InternetprotokollfamilieEinsatzfeld Datenubertragung Hypertext u a auf Anwendungsschichtaufbauend auf TCP Transport fur HTTP 1 1 und 2 QUIC Transport fur HTTP 3 Einfuhrung 1991aktuelle Version 3 2022 Standard RFC 1945 1996 1 RFC 2616 1999 2 RFC 9113 2022 3 RFC 9114 2022 4 RFC 7541 2015 5 RFC 7230 2014 6 RFC 7231 2014 7 RFC 7232 2014 8 RFC 7233 2014 9 RFC 7234 2014 10 RFC 7235 2014 11 Nutzern begegnet das Kurzel haufig z B am Anfang einer Web Adresse in der Adresszeile des BrowsersHTTP wurde von der Internet Engineering Task Force IETF und dem World Wide Web Consortium W3C standardisiert Aktuelle Version ist HTTP 3 welche als RFC 9114 4 im Juni 2022 veroffentlicht wurde 12 Die Weiterentwicklung wird von der HTTP Arbeitsgruppe der IETF HTTPbis organisiert Es gibt zu HTTP erganzende und darauf aufbauende Standards wie HTTPS fur die Verschlusselung ubertragener Inhalte oder das Ubertragungsprotokoll WebDAV Inhaltsverzeichnis 1 Eigenschaften 2 Aufbau 3 Funktionsweise 4 Geschichte 4 1 HTTP 1 0 4 2 HTTP 1 1 4 3 HTTP 2 4 4 HTTP 3 5 HTTP Anfragemethoden 6 Argumentubertragung 6 1 HTTP GET 6 2 HTTP POST 7 HTTP Statuscodes 8 HTTP Authentifizierung 9 HTTP Kompression 10 Applikationen uber HTTP 11 Siehe auch 12 Weblinks 13 EinzelnachweiseEigenschaften BearbeitenNach etablierten Schichtenmodellen zur Einordnung von Netzwerkprotokollen nach ihren grundlegenderen oder abstrakteren Aufgaben wird HTTP der sogenannten Anwendungsschicht zugeordnet Diese wird von den Anwendungsprogrammen angesprochen im Fall von HTTP ist das meist ein Webbrowser Im ISO OSI Schichtenmodell entspricht die Anwendungsschicht der 7 Schicht HTTP ist ein zustandsloses Protokoll Informationen aus fruheren Anforderungen gehen verloren Ein zuverlassiges Mitfuhren von Sitzungsdaten kann erst auf der Anwendungsschicht durch eine Sitzung uber einen Sitzungsbezeichner implementiert werden Uber Cookies in den Header Informationen konnen aber Anwendungen realisiert werden die Statusinformationen Benutzereintrage Warenkorbe zuordnen konnen Dadurch werden Anwendungen moglich die Status beziehungsweise Sitzungseigenschaften erfordern Auch eine Benutzerauthentifizierung ist moglich Bis HTTP 2 kann die Information die uber HTTP ubertragen wird normalerweise auf allen Rechnern und Routern gelesen werden die im Netzwerk durchlaufen werden Uber HTTPS jedoch kann die Ubertragung verschlusselt erfolgen HTTP 3 baut auf QUIC auf das eine TLS Kodierung erzwingt Durch Erweiterung seiner Anfragemethoden Header Informationen und Statuscodes ist HTTP nicht auf Hypertext beschrankt sondern wird zunehmend zum Austausch beliebiger Daten verwendet ausserdem ist es Grundlage des auf Dateiubertragung spezialisierten Protokolls WebDAV Zur Kommunikation ist HTTP auf ein zuverlassiges Transportprotokoll angewiesen wofur bis zu HTTP 2 in nahezu allen Fallen TCP verwendet wird HTTP 3 setzt auf QUIC auf welches seinerseits auf UDP basiert Derzeit werden hauptsachlich zwei Protokollversionen HTTP 1 0 und HTTP 1 1 verwendet Neuere Versionen alltaglicher Webbrowser wie Chromium Chrome Opera Firefox Edge und Internet Explorer sind daruber hinaus bereits kompatibel zu der neu eingefuhrten Version 2 des HTTP HTTP 2 Aufbau BearbeitenDie Kommunikationseinheiten in HTTP zwischen Client und Server werden als Nachrichten bezeichnet von denen es zwei unterschiedliche Arten gibt die Anfrage englisch Request vom Client an den Server und die Antwort englisch Response als Reaktion darauf vom Server zum Client Jede Nachricht besteht dabei aus zwei Teilen dem Nachrichtenkopf englisch Message Header kurz Header oder auch HTTP Header genannt und dem Nachrichtenrumpf englisch Message Body kurz Body Der Nachrichtenkopf enthalt Informationen uber den Nachrichtenrumpf wie etwa verwendete Kodierungen oder den Inhaltstyp damit dieser vom Empfanger korrekt interpretiert werden kann siehe Hauptartikel Liste der HTTP Headerfelder Der Nachrichtenrumpf enthalt schliesslich die Nutzdaten Funktionsweise Bearbeiten Beispiel einer Transaktion ausgefuhrt mit TelnetWenn in einem Web Browser der Link zur URL http www example net infotext html aktiviert wird so wird an den Rechner mit dem Hostnamen www example net die Anfrage gerichtet die Ressource infotext html zuruckzusenden Der Name www example net wird dabei zuerst uber das DNS Protokoll in eine IP Adresse umgesetzt Zur Ubertragung wird uber TCP auf den Standard Port 80 des HTTP Servers eine HTTP GET Anforderung gesendet Anfrage GET infotext html HTTP 1 1 br Host www example netEnthalt der Link Zeichen die in der Anfrage nicht erlaubt sind werden diese kodiert Zusatzliche Informationen wie Angaben uber den Browser zur gewunschten Sprache etc konnen uber den Header Kopfzeilen in jeder HTTP Kommunikation ubertragen werden Mit dem Host Feld lassen sich verschiedene DNS Namen unter der gleichen IP Adresse unterscheiden Unter HTTP 1 0 ist es optional unter HTTP 1 1 jedoch erforderlich Sobald der Header mit einer Leerzeile beziehungsweise zwei aufeinanderfolgenden Zeilenenden abgeschlossen wird sendet der Rechner der einen Web Server an Port 80 betreibt seinerseits eine HTTP Antwort zuruck Diese besteht aus den Header Informationen des Servers einer Leerzeile und dem tatsachlichen Inhalt der Nachricht also dem Dateiinhalt der infotext html Datei Ubertragen werden Dateien normalerweise in Seitenbeschreibungssprachen wie X HTML und alle ihre Erganzungen zum Beispiel Bilder Stylesheets CSS Skripte JavaScript usw die meistens von einem Browser in einer lesbaren Darstellung miteinander verbunden werden Prinzipiell kann jede Datei in jedem beliebigen Format ubertragen werden wobei die Datei auch dynamisch generiert werden kann und nicht auf dem Server als physische Datei vorhanden zu sein braucht zum Beispiel bei Anwendung von CGI SSI JSP PHP oder ASP NET Jede Zeile im Header wird durch den Zeilenumbruch lt CR gt lt LF gt abgeschlossen Die Leerzeile nach dem Header darf nur aus lt CR gt lt LF gt ohne eingeschlossenes Leerzeichen bestehen Antwort HTTP 1 1 200 OKServer a href Apache HTTP Server html title Apache HTTP Server Apache a 1 3 29 a href Unix html title Unix Unix a PHP 4 3 4Content Length 123456 Grosse von infotext html in Byte Content Language de nach RFC 3282 sowie RFC 1766 Connection close a href Content Type html class mw redirect title Content Type Content Type a text html Inhalt von infotext html Der Server sendet eine Fehlermeldung sowie einen Fehlercode zuruck wenn die Information aus irgendeinem Grund nicht gesendet werden kann allerdings werden auch dann Statuscodes verwendet wenn die Anfrage erfolgreich war in dem Falle meistens 200 OK Der genaue Ablauf dieses Vorgangs Anfrage und Antwort ist in der HTTP Spezifikation festgelegt Geschichte Bearbeiten Sir Tim Berners Lee gilt als Begrunder des Webs und entwickelte auch HTTP mit Ab 1989 entwickelten Tim Berners Lee und sein Team am CERN dem europaischen Kernforschungszentrum in der Schweiz das Hypertext Transfer Protocol zusammen mit den Konzepten URL und HTML womit die Grundlagen des World Wide Web geschaffen wurden Erste Ergebnisse dieser Bemuhungen war 1991 die Version HTTP 0 9 13 HTTP 1 0 Bearbeiten Die im Mai 1996 als RFC 1945 1 publizierte Anforderung ist als HTTP 1 0 bekannt geworden Bei HTTP 1 0 wird vor jeder Anfrage eine neue TCP Verbindung aufgebaut und nach Ubertragung der Antwort standardmassig vom Server wieder geschlossen Sind in ein HTML Dokument beispielsweise zehn Bilder eingebettet so werden insgesamt elf TCP Verbindungen benotigt um die Seite auf einem grafikfahigen Browser aufzubauen HTTP 1 1 Bearbeiten 1999 wurde eine zweite Anforderung als RFC 2616 publiziert die den HTTP 1 1 Standard wiedergibt 2 Bei HTTP 1 1 kann ein Client durch einen zusatzlichen Headereintrag Keepalive den Wunsch aussern keinen Verbindungsabbau durchzufuhren um die Verbindung erneut nutzen zu konnen persistent connection Die Unterstutzung auf Serverseite ist jedoch optional und kann in Verbindung mit Proxys Probleme bereiten Mittels HTTP Pipelining konnen in der Version 1 1 mehrere Anfragen und Antworten pro TCP Verbindung gesendet werden Fur das HTML Dokument mit zehn Bildern wird so nur eine TCP Verbindung benotigt Da die Geschwindigkeit von TCP Verbindungen zu Beginn durch Verwendung des Slow Start Algorithmus recht gering ist wird so die Ladezeit fur die gesamte Seite signifikant verkurzt Zusatzlich konnen bei HTTP 1 1 abgebrochene Ubertragungen fortgesetzt werden Eine Moglichkeit zum Einsatz von HTTP 1 1 in Chats ist die Verwendung des MIME Typs multipart replace bei dem der Browser nach Senden eines Boundary Codes und eines neuerlichen Content Length Headerfeldes sowie eines neuen Content Type Headerfeldes den Inhalt des Browserfensters neu aufbaut Mit HTTP 1 1 ist es neben dem Abholen von Daten auch moglich Daten zum Server zu ubertragen Mit Hilfe der PUT Methode konnen so Webdesigner ihre Seiten direkt uber den Webserver per WebDAV publizieren und mit der DELETE Methode ist es ihnen moglich Daten vom Server zu loschen Ausserdem bietet HTTP 1 1 eine TRACE Methode mit der der Weg zum Webserver verfolgt und uberpruft werden kann ob die Daten korrekt dorthin ubertragen werden Damit ergibt sich die Moglichkeit den Weg zum Webserver uber die verschiedenen Proxys hinweg zu ermitteln ein traceroute auf Anwendungsebene Aufgrund von Unstimmigkeiten und Unklarheiten wurde 2007 eine Arbeitsgruppe gestartet die die Spezifikation verbessern sollte Ziel war hier lediglich eine klarere Formulierung neue Funktionen wurden nicht eingebaut Dieser Prozess wurde 2014 beendet und fuhrte zu sechs neuen RFCs RFC 7230 HTTP 1 1 Message Syntax and Routing 2014 englisch RFC 7231 HTTP 1 1 Semantics and Content 2014 englisch RFC 7232 HTTP 1 1 Conditional Requests 2014 englisch RFC 7233 HTTP 1 1 Range Requests 2014 englisch RFC 7234 HTTP 1 1 Caching 2014 englisch RFC 7235 HTTP 1 1 Authentication 2014 englisch HTTP 2 Bearbeiten Im Mai 2015 wurde von der IETF HTTP 2 als Nachfolger von HTTP 1 1 verabschiedet Der Standard ist durch RFC 7540 14 und RFC 7541 5 spezifiziert 15 Die Entwicklung war massgeblich von Google SPDY und Microsoft HTTP Speed Mobility 16 mit jeweils eigenen Vorschlagen vorangetrieben worden Ein erster Entwurf der sich weitgehend an SPDY anlehnte war im November 2012 publiziert und seither in mehreren Schritten angepasst worden Mit HTTP 2 soll die Ubertragung beschleunigt und optimiert werden 17 Dabei soll der neue Standard jedoch vollstandig abwartskompatibel zu HTTP 1 1 sein Wichtige neue Moglichkeiten sind die Moglichkeit des Zusammenfassens mehrerer Anfragen weitergehende Datenkompressionsmoglichkeiten die binar kodierte Ubertragung von Inhalten und Server initiierte Datenubertragungen push Verfahren einzelne Streams lassen sich priorisieren Eine Beschleunigung ergibt sich hauptsachlich aus der neuen Moglichkeit des Zusammenfassens Multiplex mehrerer Anfragen um sie uber eine Verbindung abwickeln zu konnen Die Datenkompression kann nun mittels neuem Spezialalgorithmus namens HPACK 18 auch Kopfdaten mit einschliessen Inhalte konnen binar kodiert ubertragen werden Um nicht auf serverseitig vorhersehbare Folgeanforderungen vom Client warten zu mussen konnen Datenubertragungen teilweise vom Server initiiert werden push Verfahren Durch die Verwendung von HTTP 2 konnen Webseitenbetreiber die Latenz zwischen Client und Server verringern und die Netzwerkhardware entlasten 19 Die ursprunglich geplante Option dass HTTP 2 standardmassig TLS nutzt wurde nicht umgesetzt Allerdings kundigten die Browser Hersteller Google und Mozilla an dass ihre Webbrowser nur verschlusselte HTTP 2 Verbindungen unterstutzen werden Dafur ist ALPN eine Verschlusselungs Erweiterung die TLSv1 2 oder neuer braucht 20 HTTP 2 wird von den meisten Browsern unterstutzt darunter Google Chrome inkl Chrome unter iOS und Android ab Version 41 Mozilla Firefox ab Version 36 21 Internet Explorer 11 unter Windows 10 Opera ab Version 28 sowie Opera Mobile ab Version 24 und Safari ab Version 8 HTTP 3 Bearbeiten HTTP bis Version 2 stutzt sich auf das Transmission Control Protocol TCP als Transportprotokoll TCP bestatigt den Erhalt jedes Datenpakets Dies fuhrt dazu dass im Falle eines Paketverlustes alle anderen Pakete auf die erneute Ubertragung des verloren gegangenen warten mussen Head of Line Blocking 22 Google arbeitet seit 2012 an einer Alternative unter dem Namen QUIC was von der IETF ubernommen und im Jahr 2021 standardisiert wurde QUIC ist ein Transportprotokoll das auf das verbindungslose UDP aufbaut und darin fehlende Eigenschaften wie Zuverlassigkeit und verbindungsorientierte Kommunikation bereitstellt Verbindungen sind verschlusselt wofur QUIC TLS Version 1 3 einsetzt QUIC unterstutzt das Multiplexing von mehreren Datenstromen und umgeht dabei das Head of Line Blocking Falls ein Paket bei QUIC verloren geht blockiert es nur die Strome die in dem jeweiligen Paket enthalten waren 23 Die Verbindungsaushandlung von QUIC ist darauf optimiert die Latenz zur Ubertragung der eigentlichen Nutzdaten zu verringern Im November 2018 beschloss die IETF dass HTTP uber QUIC den Namen HTTP 3 tragen soll 24 Im Juni 2022 wurde HTTP 3 als RFC 9114 4 standardisiert 12 Auch bei HTTP 3 werden Datenstrome getrennt verarbeitet Geht ein Paket unterwegs verloren betrifft es nicht mehr alle Datenstrome wie es bei HTTP 2 der Fall ist Bei HTTP 3 wird der betroffene Strom warten bis das fehlende Paket eintrifft HTTP 3 ist generell verschlusselt und verspricht deutliche Geschwindigkeitsvorteile gegenuber HTTP 2 mit TLS 25 26 Google Chrome Canary war ab Mitte 2019 der erste verfugbare Browser der eine experimentelle QUIC und HTTP 3 Unterstutzung integriert hatte cURL zog bald nach Die Vorab Versionen von Firefox nightly und beta versuchen seit April 2021 automatisch HTTP 3 zu verwenden wenn es vom Webserver angeboten wird Webserver konnen die Unterstutzung anzeigen indem sie den Alt Svc Antwortheader verwenden oder die HTTP 3 Unterstutzung mit einem HTTPS DNS Eintrag ankundigen HTTP Anfragemethoden BearbeitenGET ist die gebrauchlichste Methode Mit ihr wird eine Ressource zum Beispiel eine Datei unter Angabe eines URI vom Server angefordert Als Argumente in dem URI konnen auch Inhalte zum Server ubertragen werden allerdings soll laut Standard eine GET Anfrage nur Daten abrufen und sonst keine Auswirkungen haben wie Datenanderungen auf dem Server oder ausloggen siehe unten POST schickt Daten z B den Inhalt einer Datei zur weiteren Verarbeitung zum Server diese werden als Inhalt der Nachricht ubertragen und konnen beispielsweise aus Name Wert Paaren bestehen die aus einem HTML Formular stammen Es konnen so neue Ressourcen auf dem Server entstehen oder bestehende modifiziert werden POST Daten werden im Allgemeinen nicht von Caches zwischengespeichert Zusatzlich konnen bei dieser Art der Ubermittlung auch Daten wie in der GET Methode an den URI gehangt werden siehe unten HEAD weist den Server an die gleichen HTTP Header wie bei GET nicht jedoch den Nachrichtenrumpf mit dem eigentlichen Dokumentinhalt zu senden So kann zum Beispiel schnell die Gultigkeit einer Datei im Browser Cache gepruft werden und Dateigrossen konnen im Voraus abgerufen und durch die Content Length Zeile erlesen werden PUT dient dazu eine Ressource zum Beispiel eine Datei unter Angabe des Ziel URIs auf einen Webserver hochzuladen Besteht unter der angegebenen Ziel URI bereits eine Ressource wird diese ersetzt ansonsten neu erstellt PATCH Andert ein bestehendes Dokument ohne dieses wie bei PUT vollstandig zu ersetzen Wurde durch RFC 5789 spezifiziert 27 DELETE loscht die angegebene Ressource auf dem Server TRACE liefert die Anfrage so zuruck wie der Server sie empfangen hat So kann uberpruft werden ob und wie die Anfrage auf dem Weg zum Server verandert worden ist sinnvoll fur das Debugging von Verbindungen OPTIONS liefert eine Liste der vom Server unterstutzten Methoden und Merkmale CONNECT wird von Proxyservern implementiert die in der Lage sind SSL Tunnel zur Verfugung zu stellen RESTful Web Services verwenden die unterschiedlichen Anfragemethoden zur Realisierung von Webservices Insbesondere werden dafur die HTTP Anfragemethoden GET POST PUT PATCH und DELETE verwendet WebDAV fugt die Methoden PROPFIND PROPPATCH MKCOL COPY MOVE LOCK und UNLOCK zu HTTP hinzu Argumentubertragung BearbeitenHaufig will ein Nutzer Informationen an eine Website senden Dazu stellt HTTP prinzipiell zwei Moglichkeiten zur Verfugung HTTP GET Die Daten sind Teil der URL und bleiben deshalb beim Speichern oder der Weitergabe des Links erhalten Sie mussen URL kodiert werden das heisst reservierte Zeichen mussen mit lt Hex Wert gt und Leerzeichen mit dargestellt werden HTTP POST Ubertragung der Daten mit einer speziell dazu vorgesehenen Anfrageart im HTTP Nachrichtenrumpf so dass sie in der URL nicht sichtbar sind HTTP GET Bearbeiten Hier werden die Parameter Wertepaare durch das Zeichen in der URL eingeleitet Oft wird diese Vorgehensweise gewahlt um eine Liste von Parametern zu ubertragen die die Gegenstelle bei der Bearbeitung einer Anfrage berucksichtigen soll Haufig besteht diese Liste aus Wertepaaren welche durch das amp Zeichen voneinander getrennt sind Die jeweiligen Wertepaare sind in der Form Parametername Parameterwert aufgebaut Seltener wird das Zeichen zur Trennung von Eintragen der Liste benutzt 28 Ein Beispiel Auf der Startseite von Wikipedia wird in das Eingabefeld der Suche Katzen eingegeben und auf die Schaltflache Artikel geklickt Der Browser sendet die folgende oder eine ahnliche Anfrage an den Server GET wiki Spezial Search search Katzen amp go Artikel HTTP 1 1 Host de wikipedia org Dem Wikipedia Server werden zwei Wertepaare ubergeben Argument Wertsearch Katzengo ArtikelDiese Wertepaare werden in der FormParameter1 Wert1 amp Parameter2 Wert2mit vorangestelltem an die geforderte Seite angehangt Dadurch erfahrt der Server dass der Nutzer den Artikel Katzen betrachten will Der Server verarbeitet die Anfrage sendet aber keine Datei sondern leitet den Browser mit einem Location Header zur richtigen Seite weiter etwa mit HTTP 1 0 302 Found Date Fri 13 Jan 2006 15 12 44 GMT Location http de wikipedia org wiki Katzen Der Browser befolgt diese Anweisung und sendet aufgrund der neuen Informationen eine neue Anfrage etwa GET wiki Katzen HTTP 1 1 Host de wikipedia org Und der Server antwortet und gibt den Artikel Katzen aus etwa HTTP 1 1 200 OK Date Fri 13 Jan 2006 15 12 48 GMT Last Modified Tue 10 Jan 2006 11 18 20 GMT Content Language de Content Type text html charset utf 8 Die Katzen Felidae sind eine Familie aus der Ordnung der Raubtiere Carnivora innerhalb der Uberfamilie der Katzenartigen Feloidea Der Datenteil ist meist langer hier soll nur das Protokoll betrachtet werden Nachteil dieser Methode ist dass die angegebenen Parameter mit der URL meist in der Historie des Browsers gespeichert werden und so personliche Daten unbeabsichtigt im Browser gespeichert werden konnen Stattdessen sollte man in diesem Fall die Methode POST benutzen HTTP POST Bearbeiten Da sich die Daten nicht in der URL befinden konnen per POST grosse Datenmengen zum Beispiel Bilder ubertragen werden Im folgenden Beispiel wird wieder der Artikel Katzen angefordert doch diesmal verwendet der Browser aufgrund eines modifizierten HTML Codes method POST eine POST Anfrage Die Variablen stehen dabei nicht in der URL sondern gesondert im Rumpfteil etwa POST wiki Spezial Search HTTP 1 1 Host de wikipedia org Content Type application x www form urlencoded Content Length 24 search Katzen amp go Artikel Auch das versteht der Server und antwortet wieder mit beispielsweise folgendem Text HTTP 1 1 302 Found Date Fri 13 Jan 2006 15 32 43 GMT Location http de wikipedia org wiki Katzen HTTP Statuscodes Bearbeiten Mit Fehler 404 kommen Web Nutzer am haufigsten in Beruhrung Hauptartikel HTTP Statuscode Jede HTTP Anfrage wird vom Server mit einem HTTP Statuscode beantwortet Er gibt zum Beispiel Informationen daruber ob die Anfrage erfolgreich bearbeitet wurde oder teilt dem Client also etwa dem Browser im Fehlerfall mit wo zum Beispiel Umleitung beziehungsweise wie zum Beispiel mit Authentifizierung er die gewunschten Informationen wenn moglich erhalten kann 1xx Informationen Die Bearbeitung der Anfrage dauert trotz der Ruckmeldung noch an Eine solche Zwischenantwort ist manchmal notwendig da viele Clients nach einer bestimmten Zeitspanne Zeituberschreitung automatisch annehmen dass ein Fehler bei der Ubertragung oder Verarbeitung der Anfrage aufgetreten ist und mit einer Fehlermeldung abbrechen 2xx Erfolgreiche Operation Die Anfrage wurde bearbeitet und die Antwort wird an den Anfragesteller zuruckgesendet 3xx Umleitung Um eine erfolgreiche Bearbeitung der Anfrage sicherzustellen sind weitere Schritte seitens des Clients erforderlich Das ist zum Beispiel der Fall wenn eine Webseite vom Betreiber umgestaltet wurde so dass sich eine gewunschte Datei nun an einem anderen Platz befindet Mit der Antwort des Servers erfahrt der Client im Location Header wo sich die Datei jetzt befindet 4xx Client Fehler Bei der Bearbeitung der Anfrage ist ein Fehler aufgetreten der im Verantwortungsbereich des Clients liegt Ein 404 tritt beispielsweise ein wenn ein Dokument angefragt wurde das auf dem Server nicht existiert Ein 403 weist den Client darauf hin dass es ihm nicht erlaubt ist das jeweilige Dokument abzurufen Es kann sich zum Beispiel um ein vertrauliches oder nur per HTTPS zugangliches Dokument handeln 5xx Server Fehler Es ist ein Fehler aufgetreten dessen Ursache beim Server liegt Zum Beispiel bedeutet 501 dass der Server nicht uber die erforderlichen Funktionen das heisst zum Beispiel Programme oder andere Dateien verfugt um die Anfrage zu bearbeiten Zusatzlich zum Statuscode enthalt der Header der Server Antwort eine Beschreibung des Fehlers in englischsprachigem Klartext Zum Beispiel ist ein Fehler 404 an folgendem Header zu erkennen HTTP 1 1 404 Not Found HTTP Authentifizierung Bearbeiten Hauptartikel HTTP Authentifizierung HTTP AuthentifizierungStellt der Webserver fest dass fur eine angeforderte Datei Benutzername oder Passwort notig sind meldet er das dem Browser mit dem Statuscode 401 Unauthorized und dem Header WWW Authenticate Dieser pruft ob die Angaben vorliegen oder prasentiert dem Anwender einen Dialog in dem Name und Passwort einzutragen sind und ubertragt diese an den Server Stimmen die Daten wird die entsprechende Seite an den Browser gesendet Es wird nach RFC 2617 29 unterschieden in Basic Authentication Die Basic Authentication ist die haufigste Art der HTTP Authentifizierung Der Webserver fordert eine Authentifizierung an der Browser sucht daraufhin nach Benutzername Passwort fur diese Datei und fragt gegebenenfalls den Benutzer Anschliessend sendet er die Authentifizierung mit dem Authorization Header in der Form Benutzername Passwort Base64 codiert an den Server Base64 bietet keinen kryptographischen Schutz daher kann dieses Verfahren nur beim Einsatz von HTTPS als sicher angesehen werden Digest Access Authentication Bei der Digest Access Authentication sendet der Server zusatzlich mit dem WWW Authenticate Header eine eigens erzeugte zufallige Zeichenfolge Nonce Der Browser berechnet den Hashcode der gesamten Daten Benutzername Passwort erhaltener Zeichenfolge HTTP Methode und angeforderter URI und sendet sie im Authorization Header zusammen mit dem Benutzernamen und der zufalligen Zeichenfolge zuruck an den Server der diese mit der selbst berechneten Prufsumme vergleicht Ein Abhoren der Kommunikation nutzt hier einem Angreifer nichts da sich aufgrund der verwendeten kryptologischen Hashfunktion aus dem Hashcode die Daten nicht rekonstruieren lassen und fur jede Anforderung anders lauten HTTP Kompression BearbeitenUm die ubertragene Datenmenge zu verringern kann ein HTTP Server seine Antworten komprimieren Ein Client muss bei einer Anfrage mitteilen welche Kompressionsverfahren er verarbeiten kann Dazu dient der Header Accept Encoding etwa Accept Encoding gzip deflate Der Server kann dann die Antwort mit einem vom Client unterstutzten Verfahren komprimieren und gibt im Header Content Encoding das verwendete Kompressionsverfahren an HTTP Kompression spart vor allem bei textuellen Daten HTML XHTML CSS Javascript Code XML JSON erhebliche Datenmengen da sich diese gut komprimieren lassen Bei bereits komprimierten Daten etwa gangige Formate fur Bilder Audio und Video ist die erneute Kompression nutzlos und wird daher ublicherweise nicht benutzt In Verbindung mit einer mit TLS verschlusselten Kommunikation fuhrt die Komprimierung allerdings zum BREACH Exploit wodurch die Verschlusselung gebrochen werden kann Applikationen uber HTTP BearbeitenHTTP als textbasiertes Protokoll wird nicht nur zur Ubertragung von Webseiten verwendet es kann auch in eigenstandigen Applikationen den Webservices verwendet werden Dabei werden die HTTP eigenen Befehle wie GET und POST fur CRUD Operationen weiterverwendet Dies hat den Vorteil dass kein eigenes Protokoll fur die Datenubertragung entwickelt werden muss Beispielhaft wird dies bei REST eingesetzt Siehe auch BearbeitenListe der HTTP Headerfelder Request Cycle SOAP Extensible Markup Language XML Zeichenkodierung Content Negotiation HTTP ETag HTTP CachingWeblinks Bearbeiten Commons Hypertext Transfer Protocol Sammlung von Bildern Videos und Audiodateien Wikiversity Kurs Internet und Verschluesselung World Wide Web HTTP Kursmaterialien Arbeitsgruppe der IETF zur Weiterentwicklung von HTTP HttpTea ein HTTP Analysator Freeware httptea sourceforge net englisch Linkkatalog zum Thema HTTP bei curlie org ehemals DMOZ Microsofts ausfuhrlicher Bericht zu http 2 0 englisch Einzelnachweise Bearbeiten a b RFC 1945 Hypertext Transfer Protocol HTTP 1 0 Mai 1996 englisch a b RFC 2616 Hypertext Transfer Protocol HTTP 1 1 1999 englisch RFC 9113 Hypertext Transfer Protocol HTTP 2 2022 englisch a b c RFC 9114 HTTP 3 Juni 2022 englisch a b RFC 7541 Header Compression 2 Mai 2015 englisch RFC 7230 HTTP 1 1 Message Syntax and Routing 2014 englisch RFC 7231 HTTP 1 1 Semantics and Content 2014 englisch RFC 7232 HTTP 1 1 Conditional Requests 2014 englisch RFC 7233 HTTP 1 1 Range Requests 2014 englisch RFC 7234 HTTP 1 1 Caching 2014 englisch RFC 7235 HTTP 1 1 Authentication 2014 englisch a b IETF erhebt HTTP 3 zum RFC heise de abgerufen am 13 Juni 2022 Tim Berners Lee The Original HTTP as defined in 1991 w3 org abgerufen am 13 November 2010 RFC 7540 Hypertext Transfer Protocol Version 2 HTTP 2 Mai 2015 englisch RFCs fur HTTP 2 festgelegt und geschrieben iX News 15 Mai 2015 Christian Kirsch Microsoft bringt eigenen Vorschlag fur HTTP 2 heise de 29 Marz 2012 abgerufen am 4 April 2012 Christian Kirsch Googles SPDY soll das Web beschleunigen heise de 13 November 2009 abgerufen am 4 April 2012 Entwurf der Spezifikation von HPACK Memento des Originals vom 31 Oktober 2014 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot http2 github io dem Header Kompressionsalgorithmus fur HTTP 2 HTTP Arbeitsgruppe der IETF HTTP 2 schneller surfen mit neuer Protokollversion pcwelt de 30 Januar 2016 abgerufen am 21 Februar 2018 M Belshe R Peon M Thomson Hypertext Transfer Protocol Version 2 Use of TLS Features Nicht mehr online verfugbar Archiviert vom Original am 15 Juli 2013 abgerufen am 10 Februar 2015 Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot http2 github io Firefox 36 implementiert HTTP 2 Was ist HTTP Abgerufen am 25 Marz 2021 RFC 9000 QUIC A UDP Based Multiplexed and Secure Transport Mai 2021 Abschnitt 13 englisch IETF HTTP uber Quic wird zu HTTP 3 In golem de 12 November 2018 abgerufen am 27 April 2019 Kim Rixecker HTTP 3 Wir erklaren die nachste Version des Hypertext Transfer Protocols In t3n Magazin 13 August 2021 abgerufen am 19 August 2021 Tonino Jankov Was ist HTTP 3 Hintergrundinformationen uber das schnelle neue UDP basierte Protokoll In Kinsta 18 Mai 2021 abgerufen am 19 August 2021 RFC 5789 PATCH Method for HTTP Marz 2010 englisch Appendix B Performance Implementation and Design Notes In World Wide Web Consortium W3C Hrsg HTML 4 01 Specification 24 Dezember 1999 B 2 2 Ampersands in URI attribute values w3 org RFC 2617 HTTP Authentication Basic and Digest Access Authentication Juni 1999 englisch Normdaten Sachbegriff GND 4479982 2 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Hypertext Transfer Protocol amp oldid 235846758