Zum Hauptinhalt springen

RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

  • Status: Proposed Standard
  • Veröffentlicht: June 2014
  • Stream: IETF
  • Aktualisiert: RFC2817
  • Ersetzt: RFC2616
  • Ersetzt durch: RFC9110
  • Errata: Keine Errata

Zusammenfassung (Abstract)​

Das Hypertext Transfer Protocol (HTTP) ist ein zustandsloses Protokoll auf Anwendungsebene für verteilte, kollaborative Hypertext-Informationssysteme. Dieses Dokument definiert die Semantik von HTTP/1.1-Nachrichten, wie sie durch Anfragemethoden, Anfrage-Header-Felder, Antwortstatuscodes und Antwort-Header-Felder ausgedrückt wird, zusammen mit der Nutzdaten der Nachrichten (Metadaten und Body-Inhalt) und Mechanismen zur Inhaltsverhandlung.


Inhaltsverzeichnis (Table of Contents)​

Hauptabschnitte (Core Sections)​

Anhänge (Appendices)​


Copyright (c) 2014 IETF Trust und die als Dokumentautoren identifizierten Personen. Alle Rechte vorbehalten.



Hauptmerkmale (Key Features)​

HTTP-Methodeneigenschaften (HTTP Method Properties)​

Dieses Dokument definiert drei grundlegende Eigenschaften für HTTP-Methoden:

  1. Sichere Methoden (Safe Methods): Nur-Lese-Operationen, die den Serverstatus nicht ändern
  2. Idempotente Methoden (Idempotent Methods): Mehrere identische Anfragen haben denselben Effekt wie eine einzelne Anfrage
  3. Cachefähige Methoden (Cacheable Methods): Antworten, die gespeichert und wiederverwendet werden können

Methodenübersicht (Method Summary)​

MethodeSicherIdempotentCachefähig
GET✅✅✅
HEAD✅✅✅
POST❌❌⚠️
PUT❌✅❌
DELETE❌✅❌
CONNECT❌❌❌
OPTIONS✅✅❌
TRACE✅✅❌


Glossary (Glossar)​

Kernkonzepte​

Resource (Ressource)​

Abstraktes Konzept von Informationen, alles, was durch einen URI identifiziert werden kann. Eine Ressource kann ein Dokument, ein Bild, ein Dienst, eine Person oder ein abstraktes Konzept sein.

Beispiele:

  • https://api.example.com/users/123 - Benutzerressource
  • https://example.com/logo.png - Bildressource

Representation (Darstellung)​

Statusinformationen einer Ressource zu einem bestimmten Zeitpunkt, bestehend aus Daten und Metadaten, die die Daten beschreiben.

Beispiel:

Content-Type: application/json
Content-Language: de

{"id": 123, "name": "Max Mustermann"}

User Agent (Benutzeragent)​

Clientprogramm, das HTTP-Anfragen initiiert, wie Browser, mobile Apps oder Befehlszeilentools.

Beispiele: Browser, curl, mobile App

Origin Server (Ursprungsserver)​

Autoritative Quelle einer Ressource, Server, der die endgültige Darstellung einer Ressource bereitstellen kann.


Methodenattribute​

Safe Method (Sichere Methode)​

Nur-Lese-Operation, die keine Änderung des Serverzustands anfordert oder erwartet.

Sichere Methoden: GET, HEAD, OPTIONS, TRACE

Idempotent Method (Idempotente Methode)​

Methode, bei der die Wirkung mehrerer identischer Anfragen dieselbe ist wie bei einer einzigen Anfrage.

Idempotente Methoden: GET, HEAD, PUT, DELETE, OPTIONS, TRACE

Cacheable Method (Cacheable-Methode)​

Methode, deren Antworten gespeichert und bei nachfolgenden Anfragen wiederverwendet werden können.

Cacheable-Methoden: GET, HEAD, POST (bedingt)


Inhaltsverhandlung​

Proactive Negotiation (Proaktive Verhandlung)​

Der Client gibt Präferenzen über Anfrage-Header an, der Server wählt die beste Darstellung.

Anfrage-Header: Accept, Accept-Language, Accept-Encoding, Accept-Charset

Reactive Negotiation (Reaktive Verhandlung)​

Der Server bietet mehrere Optionen an, der Client wählt die geeignete Darstellung.

Statuscode: 300 Multiple Choices

Content Negotiation (Inhaltsverhandlung)​

Mechanismus zur Auswahl der besten Darstellung aus mehreren Darstellungen derselben Ressource.


Header-Felder​

Representation Metadata (Darstellungsmetadaten)​

Header-Felder, die die Darstellungsdaten beschreiben.

Beispiele: Content-Type, Content-Encoding, Content-Language, Content-Location

Request Modifiers (Anfrage-Modifikatoren)​

Header-Felder, die die Semantik der Anfrage ändern.

Beispiele: If-Modified-Since, If-None-Match, Range

Response Control Data (Antwortsteuerungsdaten)​

Header-Felder, die die Antwortverarbeitung steuern.

Beispiele: Age, Cache-Control, Expires, Vary


Statuscode-Terminologie​

1xx Informational (Informativ)​

Temporäre Antwort, die anzeigt, dass die Anfrage empfangen wurde und die Verarbeitung fortgesetzt wird.

Beispiele: 100 Continue, 101 Switching Protocols

2xx Successful (Erfolgreich)​

Die Anfrage wurde erfolgreich empfangen, verstanden und akzeptiert.

Beispiele: 200 OK, 201 Created, 204 No Content

3xx Redirection (Umleitung)​

Weitere Aktionen sind erforderlich, um die Anfrage abzuschließen.

Beispiele: 301 Moved Permanently, 302 Found, 304 Not Modified

4xx Client Error (Client-Fehler)​

Die Anfrage enthält Syntaxfehler oder kann nicht abgeschlossen werden.

Beispiele: 400 Bad Request, 404 Not Found, 403 Forbidden

5xx Server Error (Server-Fehler)​

Der Server konnte eine gültige Anfrage nicht abschließen.

Beispiele: 500 Internal Server Error, 503 Service Unavailable


Nachrichtenkomponenten​

Message (Nachricht)​

Grundeinheit der HTTP-Kommunikation, bestehend aus Headern und einem optionalen Nachrichtentext.

Typen: Request Message (Anfragenachricht), Response Message (Antwortnachricht)

Header Field (Header-Feld)​

Metadaten in der Nachricht, Format field-name: field-value.

Beispiel:

Content-Type: application/json
Content-Length: 123

Message Body (Nachrichtentext)​

Die tatsächlich übertragenen Daten.

Payload (Nutzlast)​

In einer Anfrage oder Antwort übertragene Daten und deren Metadaten.


Cache-bezogen​

Fresh (Frisch)​

Die Cache-Antwort befindet sich innerhalb ihrer Gültigkeitsdauer und kann direkt ohne erneute Validierung verwendet werden.

Stale (Veraltet)​

Die Cache-Antwort ist abgelaufen und erfordert erneute Validierung oder Abruf einer neuen Antwort.

Cache-Control​

Direktiven zur Steuerung des Cache-Verhaltens.

Beispiele:

Cache-Control: max-age=3600
Cache-Control: no-cache
Cache-Control: private

Verbindungsbezogen​

Connection (Verbindung)​

Transportschichtverbindung zwischen Client und Server.

Persistent Connection (Persistente Verbindung)​

Verbindung, die für mehrere Anfrage-/Antwort-Austausche verwendet werden kann.

HTTP/1.1: Standard-persistente Verbindung


Weitere Begriffe​

URI (Uniform Resource Identifier)​

Einheitlicher Ressourcenbezeichner zur Identifizierung von Ressourcen.

Format: scheme://authority/path?query#fragment

Beispiel: https://api.example.com/users?page=1

Media Type (Medientyp)​

Format der Ressourcendarstellung, auch als MIME-Typ bezeichnet.

Format: type/subtype[;parameter=value]

Beispiele: application/json, text/html; charset=utf-8

Quality Value (Qualitätswert)​

Numerischer Wert, der den Präferenzgrad angibt, Bereich 0.0-1.0.

Beispiel: Accept: text/html, application/json;q=0.9

Payload Too Large (Nutzlast zu groß)​

Der Nachrichtentext der Anfrage oder Antwort überschreitet die Größe, die der Server bereit oder in der Lage ist zu verarbeiten.

Statuscode: 413 Payload Too Large


Abkürzungen​

AbkürzungVollständiger NameDeutsch
HTTPHypertext Transfer ProtocolHypertext-Übertragungsprotokoll
URIUniform Resource IdentifierEinheitlicher Ressourcenbezeichner
URLUniform Resource LocatorEinheitlicher Ressourcen-Locator
MIMEMultipurpose Internet Mail ExtensionsMehrzweck-Internet-Mail-Erweiterungen
ABNFAugmented Backus-Naur FormErweiterte Backus-Naur-Form
IANAInternet Assigned Numbers AuthorityInternet-Nummernzuweisungsbehörde
RFCRequest for CommentsBitte um Kommentare
IETFInternet Engineering Task ForceInternet-Engineering-Task-Force

Zurück: RFC 7231 Startseite