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)
-
- 1.1 Konformität und Fehlerbehandlung (Conformance and Error Handling)
- 1.2 Syntaxnotation (Syntax Notation)
-
3. Repräsentationen (Representations)
- 3.1 Repräsentationsmetadaten (Representation Metadata)
- 3.2 Repräsentationsdaten (Representation Data)
- 3.3 Nutzdatensemantik (Payload Semantics)
- 3.4 Inhaltsverhandlung (Content Negotiation)
-
4. Anfragemethoden (Request Methods) ⭐
- 4.1 Überblick (Overview)
- 4.2 Gemeinsame Methodeneigenschaften (Common Method Properties)
- 4.2.1 Sichere Methoden (Safe Methods)
- 4.2.2 Idempotente Methoden (Idempotent Methods)
- 4.2.3 Cachefähige Methoden (Cacheable Methods)
- 4.3 Methodendefinitionen (Method Definitions)
- 4.3.1 GET
- 4.3.2 HEAD
- 4.3.3 POST
- 4.3.4 PUT
- 4.3.5 DELETE
- 4.3.6 CONNECT
- 4.3.7 OPTIONS
- 4.3.8 TRACE
-
5. Anfrage-Header-Felder (Request Header Fields)
- 5.1 Steuerungen (Controls)
- 5.2 Bedingungen (Conditionals)
- 5.3 Inhaltsverhandlung (Content Negotiation)
- 5.4 Authentifizierungsnachweise (Authentication Credentials)
- 5.5 Anfragekontext (Request Context)
-
6. Antwortstatuscodes (Response Status Codes)
- 6.1 Überblick über Statuscodes (Overview of Status Codes)
- 6.2 Informativ 1xx (Informational 1xx)
- 6.3 Erfolg 2xx (Successful 2xx)
- 6.4 Umleitung 3xx (Redirection 3xx)
- 6.5 Client-Fehler 4xx (Client Error 4xx)
- 6.6 Server-Fehler 5xx (Server Error 5xx)
-
7. Antwort-Header-Felder (Response Header Fields)
- 7.1 Steuerdaten (Control Data)
- 7.2 Validierungs-Header-Felder (Validator Header Fields)
- 7.3 Authentifizierungsherausforderungen (Authentication Challenges)
- 7.4 Antwortkontext (Response Context)
-
- 11.1 Normative Referenzen (Normative References)
- 11.2 Informative Referenzen (Informative References)
Anhänge (Appendices)
- Anhang A. Änderungen gegenüber RFC 2616 (Changes from RFC 2616)
- Anhang B. Importiertes ABNF (Imported ABNF)
- Anhang C. Gesammeltes ABNF (Collected ABNF)
- Anhang D. Index
Urheberrechtshinweis (Copyright Notice)
Copyright (c) 2014 IETF Trust und die als Dokumentautoren identifizierten Personen. Alle Rechte vorbehalten.
Verwandte Ressourcen (Related Resources)
- Offizieller Text: RFC 7231 (TXT)
- Offizielle Seite: RFC 7231 DataTracker
- Ersetzt: RFC 2616
- Ersetzt durch: RFC 9110 (HTTP Semantik)
Hauptmerkmale (Key Features)
HTTP-Methodeneigenschaften (HTTP Method Properties)
Dieses Dokument definiert drei grundlegende Eigenschaften für HTTP-Methoden:
- Sichere Methoden (Safe Methods): Nur-Lese-Operationen, die den Serverstatus nicht ändern
- Idempotente Methoden (Idempotent Methods): Mehrere identische Anfragen haben denselben Effekt wie eine einzelne Anfrage
- Cachefähige Methoden (Cacheable Methods): Antworten, die gespeichert und wiederverwendet werden können
Methodenübersicht (Method Summary)
| Methode | Sicher | Idempotent | Cachefä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- Benutzerressourcehttps://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ürzung | Vollständiger Name | Deutsch |
|---|---|---|
| HTTP | Hypertext Transfer Protocol | Hypertext-Übertragungsprotokoll |
| URI | Uniform Resource Identifier | Einheitlicher Ressourcenbezeichner |
| URL | Uniform Resource Locator | Einheitlicher Ressourcen-Locator |
| MIME | Multipurpose Internet Mail Extensions | Mehrzweck-Internet-Mail-Erweiterungen |
| ABNF | Augmented Backus-Naur Form | Erweiterte Backus-Naur-Form |
| IANA | Internet Assigned Numbers Authority | Internet-Nummernzuweisungsbehörde |
| RFC | Request for Comments | Bitte um Kommentare |
| IETF | Internet Engineering Task Force | Internet-Engineering-Task-Force |
Zurück: RFC 7231 Startseite