HTTP - Hypertext Transfer Protocol


Dieser Text basiert auf:
HTTP/1.0spec5, Internet-Draft, 19. February 1996.
(HTTP/1.0spec5 ist gültig bis 19. August 1996)
Diesbezügliche Links:
W3-Consortium
HTTP/1.0
HTTP/1.1
Inhaltsverzeichnis:
Anfrage eines Client an den Server (Request)
Antwort des Servers an den Client (Response)
Status-Codes beim HTTP-Response
Informational 1xx
Successful 2xx
Redirection 3xx
Client Error 4xx
Server Error 5xx

Elemente des HTTP-Headers


Das im WWW verwendete Protokoll HTTP ist speziell für kurze Antwortzeiten bei der Referenzierung verteilter Objekte entwickelt worden und sieht eine große Anzahl von Möglichkeiten vor, die heutige WWW-Clients und -Server noch nicht unterstützen.
Dabei ist der Ablauf einer HTTP-Operation sehr einfach:
Der Client, der ein Dokument vom Server haben möchte, baut eine TCP-Verbindung zu diesem Server auf und schickt ihm eine Anfrage (Request). Der Server reagiert mit dem Abschicken einer Antwort (Response) an den Client und beendet danach die Verbindung. Die Verwendung von Inline-Graphiken innerhalb eines HTML-Dokuments ist dagegen etwas komplizierter. Wird eine solche HTML-Seite vom Server angefordert, so wird der HTML-Quelltext an den Client übertragen. Dieser entdeckt daraufhin das Vorhandensein von Inline-Graphiken und fordert diese zusätzlich vom Server an (erneuter Request).

Anfrage eines Client an den Server (Request)

Wie eben schon erwähnt, ist das Request-Format von HTTP sehr einfach. In der ersten Zeile gibt der Client an, welche Protokoll-Version er spricht (aktuell ist HTTP/1.0), um welches Dokument es geht und mit welcher Methode dieses Dokument zu behandeln ist. Die am häufigsten benutzte Methode ist GET, welche den Server veranlaßt, dem Client eine Kopie des Dokuments zu schicken. Weitere Methoden sind POST und PUT. Mit der Methode PUT kann der Client im angegebenen Dokument Änderungen veranlassen. Mit der Methode POST wird der Server veranlaßt, ein neues Dokument zu erzeugen, das dem im Request angegebenen Dokument untergeordnet ist. Der Server gibt dann den URL des erzeugten Dokuments an den Client zurück. Die Verbindung zwischen über- und untergeordnetem Dokument wird dadurch charakterisiert, daß POST diese Metainformation in den Header des übergeordneten Dokuments einträgt - und zwar als <LINK>-Tag im <HEAD>-Element. Ein entsprechender Link in die Gegenrichtung gehört in den Header des untergeordneten Dokuments. Eine beispielhafte Anwendung wäre das Hinzufügen des untergeordneten Objekts 'Kapitel' zum übergeordneten Objekt 'Buch' mittels der POST-Methode und das anschließende Verändern der Objekte durch die PUT-Methode. Da die Link-Eintragungen im Header nicht im Dokument erscheinen (z.B. als Hypertextlinks) sollte ein Browser diese Beziehungen zwischen den Dokumenten in geeigneter Weise anzeigen, um den Benutzern die Navigation im Hyperspace zu erleichtern. Mit Hilfe der Methode LINK kann der schreibberechtigte Benutzer weitere Metainformationen in den Header eintragen oder sie mit UNLINK wieder löschen. Beispiele für diese Metainformationen wären Hinweise auf den Autor, auf neue oder ältere Versionen des Dokuments oder Informationen, die die (Baum-) Struktur der vorhandenen Hypertextdokumente wiederspiegeln. Der Serverbetreiber kann einem Benutzer das Recht auf Änderung der Metainformationen einräumen, ohne ihm gleichzeitig den Schreibzugriff auf den Dokumentinhalt zu gestatten. Der Benutzer kann nun LINK oder gegebenenfalls UNLINK verwenden, nicht aber die Dokumente mittels PUT verändern. Mit der Methode HEAD schließlich kann ein Client Informationen über ein Dokument anfordern, ohne die Datei selbst übertragen zu müssen. Ebenso wie eine Neueintragung durch POST und eine Änderung durch PUT muß dann auch noch ein DELETE möglich sein. Damit wären dann alle im HTTP-Protokoll spezifizierten REQUEST-Methoden aufgeführt. Allerdings ist diese Methoden-Vielfalt nur auf dem Papier vorhanden, denn bisher gibt es keine einzige implementierte HTTP-Version, die alle Methoden unterstützt. Die einzige, bisher implementierte Request-Methode ist GET.

Nach dieser ersten Zeile (des Request-Formats von HTTP) teilt der Client (ab HTTP 1.0) dem Server optional weitere Informationen in Form von Headern nach RFC822 , dem Standard für Electronic Mail, mit. Die am häufigsten verwendeten Header sind 'Accept' und 'User-Agent'. Im User-Agent-Header steht der Name des verwendeten WWW-Clients. Besonders wichtig ist der Accept-Header. Dieser teilt dem Server mit, welche Objekt-Typen der Client verarbeiten kann. Dies geschieht in Form einer Liste von MIME-Content-Types, die den Server darüber informiert, mit welchen Datenformaten der Client etwas anfangen kann. Wenn der Client beispielsweise ein Dokument anfordert, das dem Server sowohl als PostScript-, als auch als ASCII-Datei vorliegt, dann weiß er anhand der Accept-Liste 'Accept: text/plain; text/html', daß der Client mit der PostScript-Version nichts anfangen kann und schickt ihm die ASCII-Version (text/plain). Hätte der Client zusätzlich noch den Content-Type 'applikation /postscript' im Accept-Header gehabt, dann könnte der Server selbst entscheiden, welche Version er dem Client zuschickt. Da zu jedem Datenformat spezifiziert ist, wie gut sich dieses zur Darstellung eignet, kann der Server in diesem Fall das Format liefern, welches er selbst für das qualitativ bessere hält.
Künftige Server werden darüber hinaus in der Lage sein, in diese Bewertung mit einzubeziehen, wie der Client selbst die Qualität der verschiedenen Formate einschätzt und welche Kompromisse er hinsichtlich Übertragungsdauer und volumen zu machen bereit ist. Die Content-Types text/plain und text/html sind die Mindestanforderungen, die jeder Server und jeder Client unterstützen muß.

Weitere Informationen, die der Client im Request-Header übermitteln kann, sind der Name des Benutzers in Form einer Mail-Adresse, der URL des Dokumentes, das sich auf den angeforderten URL bezieht, und Autorisierungsdaten. Am Ende der Header-Liste folgt schließlich noch eine Leerzeile. Bei Requests mit den Methoden PUT oder POST folgen im Anschluß daran, im Request-Body, noch die eigentlichen Nutzdaten.

Im folgenden wird noch einmal kurz die Syntax des Requests dargestellt.
Die Angabe <crlf> soll verdeutlichen, daß im HTTP-Protokoll an dieser Stelle zwingend ein Zeilenende stehen muß (‘carriage-return’ und ‘line-feed’). Die Schreibweise {...}* soll eine beliebig zu wiederholende Folge symbolisieren (0 bis unendlich):

<METHOD> <URL> "HTTP/1.0" <crlf>
{<Header>: <Value> <crlf>}*
<crlf<
<Body>

Ein Beispiel:

GET /index.html HTTP/1.0
Accept: text/plain
Accept: text/html
Accept: */*
User-Agent: NCSA Mosaic 2.4

Antwort des Servers an den Client (Response)

Genau wie das Request-Format ist auch das Response-Format sehr einfach gehalten. Die Antwort des Servers auf einen Request beginnt immer mit einer Statuszeile. In dieser Statuszeile steht die HTTP-Version, die der Server versteht, gefolgt von einem Status-Code, der über Erfolg bzw. Mißerfolg des Requests Auskunft gibt. Nach dem Fehler-Code steht optional ein erläuternder Text wie z.B. 'OK', 'nicht autorisierter Zugriff' oder 'nicht gefunden'. Unter Umständen kann dort aber auch ein weiterer URL vermerkt sein, der das gewünschte Dokument referenziert. Der Client kann in diesem Fall den Zugriff auf die neue Adresse unmittelbar ausführen, ohne den Benutzer mit einer Fehlermeldung zu schockieren.
Im Anschluß an diese Statuszeile folgt dann wieder eine Header-Liste im Mail-Stil nach RFC822. Die Header-Liste wird beendet durch eine Leerzeile. Anschließend folgen dann im Response-Body die eigentlich zu übertragenden Daten. Die wichtigsten Header beim Response sind die MIME-Header ‘Content-Type’ und ‘Content-Length’. Content-Type informiert den Client über den Typ der vom Server gelieferten Daten. Content-Length gibt die Größe des gelieferten Objekts an. Weitere Header informieren den Client über den Namen des implementierten Servers, die verwendete MIME-Version, das Datum der Erstellung und der letzten Änderung, Version, Sprache, Kosten, Metainformationen aus dem

-Teil des HTML-Dokuments und so weiter. Der Expires-Header liefert darüber hinaus dem Client einen Hinweis, ab welchem Zeitpunkt er die Information als veraltet betrachten darf und gegebenenfalls erneut vom Server anfordern sollte. Zwar sind beim Response alle Header optional und haben im Normalfall (Anfrage nach einem vorhandenen HTML-Dokument) keinen Einfluß auf die Übertragung der Informationen, in einigen Fällen können aber für den Empfänger wichtige Daten auch in den HTTP-Headern stehen. So steht im Header z.B. der MIME-Content-Type der folgenden Daten, und auf einen HEAD-Request antwortet der Server lediglich mit der Übertragung der Header-Liste und den Metainformationen, die im HEAD-Teil des HTML-Dokuments stehen, ohne die Nutzdaten also den BODY-Teil des angeforderten HTML-Dokuments mit zu übertragen.

Auch hier soll noch einmal kurz die Syntax des Response dargestellt werden. Erläuterungen zu den Zeichen <crlf> und {...}* stehen bei der Syntax-Beschreibung des Requests. Die Zeichen [...] sollen ein optionales Vorhandensein darstellen:

"HTTP/1.0" <result-code> [<message>] <crlf>
{<Header>: <Value> <crlf>}*
<crlf>
<Body>

Auch hier wieder ein Beispiel:

HTTP/1.0 200 OK
Server: NCSA/1.5
MIME-version: 1.0
Content-type: text/plain; text/html
Last-Modified: Thu Jul 7 00:25:33 1994
Content-Length: 2003

<html><head><title>HTTP-Hypertext Transfer Protocol</title></head>
<body>
....
</body></html>

Status-Codes beim HTTP-Response

Der in der Status-Zeile des HTTP-Response stehende dreistellige Status-Code gibt Auskunft über die Reaktion des WWW-Servers auf den vorhergehenden Request. Der hinter dem Status-Code stehende Text ist optional und wird bei der Auswertung des Status-Codes nicht beachtet. Dieser Text kann also wegfallen oder geändert werden, ohne die Reaktion des WWW-Client auf den vorhergehenden Request zu beeinträchtigen.

Die folgende Aufzählung gibt Auskunft über die Numerierungslogik und über bereits standardisierte bzw. noch unbelegte Status-Codes:

Die erste Stelle des dreistelligen Status-Codes definiert die Art des Response:

1xx : Informational Momentan unbenutzt, aber reserviert für zukünftige Anwendungsfälle.
2xx : Success Der Request wurde vollständig empfangen, verstanden und bearbeitet.
3xx : Redirection Der Request kann noch nicht vollständig abgearbeitet werden, weitere Aktionen sind nötig.
4xx : Client Error Der Request beinhaltet einen Syntax-Fehler oder kann nicht bearbeitet werden.
5xx : Server Error Beim Bearbeiten des letzten gültigen Requests ist ein Server-Fehler aufgetreten.

Die letzten beiden Stellen des Status-Codes beinhalten keinerlei Klassifizierungen. Im, zum Zeitpunkt der Entstehung dieser Arbeit, gültigen HTTP-Standard (HTTP/1.0 V5 - gültig bis 19. August 1996) sind folgende Status-Codes definiert:

Informational 1xx

In HTTP 1.0 sind keine 1xx-Status-Codes definiert. Sie sind lediglich provisorischer Art und für zukünftige Anwendungsfälle gedacht oder können bei experimentellen Anwendungen außerhalb des HTTP-Standards verwendet werden.

Successful 2xx

Ein 2xx-Status-Code bedeutet, daß der vorhergehende Request des Clients erfolgreich empfangen, verstanden und akzeptiert wurde.

200 OK
Der Request hatte Erfolg.

201 Created
Der Request wurde erfolgreich ausgeführt und die neue Ressource erzeugt. Diese kann mit dem/den im HTTP-Response angegebenen URL(s) referenziert werden. Die Ressource sollte allerdings vor Benutzung dieses Status-Codes erzeugt werden. Falls die zu erzeugende Ressource noch nicht erreichbar ist, muß der WWW-Server im Response-Body mitteilen, ab wann diese erreichbar ist; ansonsten sollte der 202-Status-Code verwendet werden.
Bei den in HTTP/1.0 spezifizierten Methoden kann nur POST eine Ressource erzeugen.

202 Accepted
Der Request wurde akzeptiert und bearbeitet, ist allerdings noch nicht fertig. Vorgesehen wurde dieser Status-Code für den Fall, daß ein Server einen Request annehmen kann, ohne ihn gleich vollständig abzuarbeiten (z.B. im Falle eines Batch-Betriebs, der nur einmal am Tag läuft). Der WWW-Client kann also den Erfolg seines Requests nicht sofort überprüfen (Anzeige im Client bei GET oder Existenz einer neuen Ressource bei POST), sondern erhält im Response-Body lediglich eine Meldung über den aktuellen Zustand der Bearbeitung und entweder einen Hinweis auf einen Status-Monitor oder eine Abschätzung, wann der Benutzer seinen Request als erfüllt betrachten kann.

204 No Content
Der Request wurde vollständig abgearbeitet, aber es gibt keine Informationen, die zurückgeschickt werden könnten. Bei einem Request durch einen Hyperlink von einer HTML-Seite aus würde sich die im WWW-Client dargestellte Seite (mit dem entsprechenden Hyperlink) also nicht ändern. Lediglich neue Metainformationen in Form von Response-Header-Feldern könnten zusammen mit dem Response übertragen werden. Diese sind dann zusammen mit den aktuell im WWW-Client abrufbaren Header-Informationen gültig.


Redirection 3xx

Ein Status-Code mit einer '3' an erster Stelle deutet darauf hin, daß zum Erfüllen des Requests weitere Aktionen des WWW-Clients erforderlich sind. Wenn die Methode des vorausgehenden Requests GET oder HEAD war, können die weiteren erforderlichen Aktionen des WWW-Clients ohne weitere Interaktion mit dem Benutzer durchgeführt werden. Um eine unendliche Schleife zu verhindern, darf ein WWW-Client eine solche, quasi automatische Weiterleitung (Redirection) nur maximal fünfmal durchführen.

300 Multiple Choices
Die im Request angesprochene Ressource ist mehrmals vorhanden. Außer bei einem vorhergehenden HEAD-Request, sollte der Response-Body eine Liste mit Beschreibungen und Adressen der vorhandenen Ressourcen beinhalten. Bei einer bevorzugten Alternative sollte der URL der entsprechenden Ressource-Alternative im ‘Location’-Feld des Response angegeben werden (für eine automatische Weiterleitung der Anfrage durch den WWW-Client).

301 Moved Permanently
Die im Request angeforderte Ressource ist permanent unter einem neuen URL zu finden. Der neue URL steht im Location-Feld. Außer bei einem HEAD-Request sollte im Response-Body eine kurze Mitteilung mit einem Hyperlink zum neuen URL stehen.
Bei einem vorangehenden POST-Request darf der WWW-Client keine automatische Weiterleitung durchführen (es sei denn, der Benutzer kann dieses bestätigen).

302 Moved Temporarily
Die im Request angeforderte Ressource ist vorübergehend unter einem neuen URL zu finden. Der neue URL steht im 'Location'-Feld. Da sich die Umadressierung wieder ändern kann, sollte der WWW-Client auch bei weiteren Requests den 'alten' (Request ) URL benutzen. Außer bei einem HEAD-Request sollte im Response-Body eine kurze Mitteilung mit einem Hyperlink zum neuen URL stehen.
Bei einem vorangehenden POST-Request darf der WWW-Client keine automatische Weiterleitung durchführen (es sei denn, der Benutzer kann dieses bestätigen).

304 Not Modified
Bei einen GET-Request mit Datumsangabe im 'If-Modified-Since'-Request-Header antwortet der Server mit einem Response mit Status-Code 304 und ohne Response-Body, wenn das im Request referenzierte Dokument seit der entsprechenden Datumsangabe nicht geändert wurde.


Client Error 4xx

Diese Gruppe von Response-Status-Codes ist auf alle Request-Methoden anwendbar und wurde für Fälle vorgesehen, in denen der WWW-Client einen Fehler verursacht. Wenn der Client einen 4xx-Response empfängt, bevor er seinen Request vollständig abgeschickt hat, muß er sofort aufhören, Daten an den Server zu senden. Außer bei einem Head-Request sollte der Server im Response-Body eine Erklärung der Fehlersituation liefern.

400 Bad Request
Der vorangegangene Request konnte vom Server nicht verstanden werden - im allgemeinen wegen Syntax-Fehlern. Der WWW-Client sollte den Request nicht ohne Änderungen wiederholen.

401 Unauthorized
Der Request bedarf der Benutzer-Authentifizierung. Im 'WWW-Authenticate'-Header-Feld teilt der Server dem Client mit, welche Authentifizierung erforderlich ist. Der Client kann dann den Request mit der entsprechend zugehörenden Authentifizierung wiederholen.

403 Forbidden
Der Server hat den Request verstanden, kann ihn aber nicht ausführen. Die Authentifizierung hat nicht funktioniert, und der Request sollte nicht wiederholt werden. Wenn es kein Head-Request war und der Server bekanntgeben möchte, warum der Request nicht ausgeführt werden konnte, kann er den Grund im Response-Body vermerken.
Normalerweise wird dieser Status-Code benutzt, wenn der Server den wahren Grund für die Ablehnung des Requests nicht bekanntgeben will oder wenn alle anderen Response-Codes unzutreffend sind.

404 Not Found
Unter dem im Request angegebenen URL konnte nichts gefunden werden. Es gibt auch keinen Hinweis darauf, ob dieser Zustand dauerhaft oder temporär ist. Wenn der Server diese Information nicht publik machen möchte, kann statt dessen der Status-Code 403 (Forbidden) verwendet werden.


Server Error 5xx

Response-Status-Codes, die mit der Nummer '5' beginnen, bedeuten, daß der Server einen Fehler bemerkt hat oder unfähig ist, einen Request zu bearbeiten. Wenn der Client einen 5xx-Respond empfängt, bevor er seinen Request vollständig abgeschickt hat, dann muß er sofort aufhören, Daten an den Server zu senden. Außer bei einem Head-Request sollte der Server im Response-Body eine Erklärung der Fehlersituation liefern.
Diese Art von Response-Codes sind für alle Request-Methoden anwendbar und benötigen keinerlei Response-Header-Felder.

500 Internal Server Error
Ein unbekannter Fehler ist aufgetreten, der den Server daran hindert, den Request auszuführen.

501 Not Implemented
Der Server besitzt nicht die für die Erfüllung des Requests erforderliche Funktionalität. Dieser Response-Code wird immer dann benutzt, wenn der Server die verwendete Request-Methode nicht erkennt und nicht fähig ist, diese Methode bezüglich irgendeiner Ressource anzuwenden.

502 Bad Gateway
Wenn ein Server als Gateway oder Proxy konfiguriert ist und einen ungültigen Response eines vorgelagerten Servers erhält, setzt er diesen Response-Code, um den Request trotzdem behandeln zu können.

503 Service Unavailable
Diesen Response-Code sendet ein Server, der z.B. aufgrund zu hoher Auslastung oder Installationsarbeiten momentan nicht in der Lage ist, einen Request zu erfüllen. Dieser Status-Code ist für kurzfristige Zustände vorgesehen, die sich nach einiger Zeit wieder bereinigen.


Elemente des HTTP-Headers

Dieser Abschnitt beschreibt alle im HTTP-Request und HTTP-Response verwendeten Header-Felder.

Allow
Dieser Header listet die Methoden auf, die von der im Request referenzierten Ressource unterstützt werden. Sinn ist es, den Empfänger über die für diese Ressource gültigen Methoden zu informieren. Die Angabe enthält aber keinerlei Hinweis darauf, welche Methoden der Server implementiert hat.

Allow: GET, HEAD

Authorization
Ein WWW-Client authentifiziert sich gegenüber einem WWW-Server (z.B. nach einem 401-Response) mittels der Angaben in diesem Response-Header-Feld. Responses auf Requests mit Authorization-Header sind nicht cache-fähig.

Content-Encoding
Der Content-Encoding-Header gibt den Typ der Daten an, die im HTTP-Body übertragen werden. Typischerweise wird dieser Header verwendet, wenn die übertragenen Daten modifiziert (z.B. komprimiert) sind. Dann definiert diese Angabe den modifizierten Datentyp und gibt damit einen Hinweis, wie die Daten behandelt werden müssen (z.B. entkomprimieren), damit die eigentlichen Informationen (deren Datentyp weiterhin im Content-Type-Header vermerkt ist) wieder zugänglich sind.
Ein typisches Beispiel sind komprimiert übertragene Daten:

Content-Encoding: x-gzip

Content-Length
Diese Angabe beschreibt die Größe der im HTTP-Body stehenden Daten dezimal. Bei allen HTTP/1.0 Requests, die einen Request-Body beinhalten, ist die Angabe eines gültigen Content-Length-Werts erforderlich.

Content-Length: 3495

Content-Type
Diese Angabe definiert den Daten-Typ der Daten, die im HTTP-Body gesendet werden. Bei einem HEAD-Request steht in Content-Type der Daten-Typ, der im Fall eines GET-Requests gesendet worden wäre.

Content-Type: text/html

Date
Der HTTP-Header Date gibt das Datum (nach ‘Greenwich Mean Time’) an, zu dem die entsprechende Nachricht initiiert wurde. Das zu verwendende Datums-Format ist in RFC 822 (überarbeitet durch RFC 1123) beschrieben.

Date: Tue, 15 Nov 1994 08:12:31 GMT

Expires
Der Expires-HTTP-Header gibt an, wann die gesendete Information ihre Gültigkeit verliert. Er bewirkt nicht, daß die entsprechenden Daten sich zu diesem Zeitpunkt wirklich ändern oder gelöscht werden. Er bedeutet lediglich, daß eine im Cache stehende Information ab diesem Zeitpunkt neu vom Orginal-Server geladen werden sollte. Die im Expires-Header stehende Datumsangabe ist also nicht zwingend und auch nicht zwingend richtig, sollte aber benutzt werden, um z.B. Cache-Strategien, die diese Angabe auswerten, zu unterstützen.

Expires: Thu, 03 Sep 1996 14:00:00 GMT

From
Wenn der From-Request-Header gesetzt ist, enthält er die Internet e-mail Adresse des Users, der über einen WWW-Client diesen Request veranlaßt hat. Diese Angabe sollte nicht für Sicherheits-Mechanismen verwendet werden, da der Benutzer sie sowohl verändern, als auch unterdrücken kann.

From: auert@cs.tu-berlin.de

If-Modified-Since
Diese Angabe im GET-Request-Header bedeutet, daß der Server die angeforderte Ressource nur dann senden soll, wenn sie, seit dem im If-Modified-Since-Header angegebenen Datum, verändert wurde. Wenn nicht, soll der Server einen 304-Response (Not-Modified) ohne die Ressource im Response-Body senden.

If-Modified-Since: Sat, 06 Jul 1996 12:45:26 GMT

Last-Modified
Das Last-Modified-Header-Feld bedeutet, daß der Sender annimmt, daß die entsprechende Ressource zu diesem Datum letztmalig geändert wurde. Die Syntax dieser Angabe ist zwar fest vorgegeben, die Semantik dieses Feldes (also die Bedeutung der Datumsangabe) hängt aber von der Implementierung beim Sender und der Art der entsprechenden Ressource ab (bei Dateien: Datumsangabe des Dateisystems; bei Datenbank-Anfragen: Zeitstempel des Datensatzes; ...).

Last-Modified: Sat, 06 Jul 1996 12:45:26 GMT

Location
Der Location-Response-Header definiert die exakte Adresse der Ressource, die im Request-URL angefordert wurde. Bei einem 3xx-Response beinhaltet Location den vom Server bevorzugten URL und wird zum automatischen Weiterleiten verwendet.

Location: http://www.w3.org/hypertext/WWW/NewLocation.html

Pragma
Der Pragma-Header beinhaltet implementationsspezifische Angaben und wird daher von Empfängern, die mit diesen Angaben nichts anzufangen wissen, ignoriert.

Referer
Diese Angabe enthält die Adresse (URL) der Ressource, von der aus der Request ausgelöst wurde. Genau wie beim From-Header sollte auch hier der Benutzer die Möglichkeit haben, diese Angabe zu unterdrücken, da die Übermittlung dieser beiden Header die Privat-sphäre des Benutzers betreffen.

Referer: http://www.w3.org/hypertext/DataSources/Overview.html

Server
Dieser Response-Header beinhaltet Informationen über die verwendete Server-Software und weitere wichtige Produkte/Produkterweiterungen.

Server: NCSA/1.5

User-Agent
Dieser Request-Header informiert über die verwendete Client-Software, mit der der Request ausgelöst wurde, und weitere wichtige Produkte bzw. Produkterweiterungen dieser Software.

User-Agent: Mozilla/2.0 (Win16;I)

WWW-Authenticate
Dieser Response-Header muß in jedem 401-Response (Unauthorized) vorhanden sein. Er beinhaltet Angaben zur Art der Authentifizierung und für die entsprechende Ressource notwendige bzw. auf sie anwendbare Parameter. In HTTP/1.0 ist bislang nur eine Authentifizierungs-Art definiert: Basic-Authentication.

WWW-Authenticate: Basic realm="Dirks Privat-Bereich"