Aller au contenu principal

RFC 9110 - HTTP Semantics (Sémantique HTTP)

  • Statut: Internet Standard
  • Publié: June 2022
  • Stream: IETF
  • Met à jour: RFC3864
  • Remplace: RFC2818, RFC7230, RFC7231, RFC7232, RFC7233, RFC7235, RFC7538, RFC7615, RFC7694
  • Errata: Pas d'errata

Abstract (Résumé)​

Le Hypertext Transfer Protocol (HTTP) est un protocole au niveau application sans état pour les systèmes d'information hypertexte distribués et collaboratifs. Ce document définit la sémantique de HTTP: architecture, terminologie, méthodes de requête, codes de statut de réponse, champs d'en-tête et concepts fondamentaux associés.

Importance: Il s'agit de la dernière spécification HTTP de base (2022), applicable à toutes les versions, y compris HTTP/1.1, HTTP/2 et HTTP/3.


Contents (Contenu)​

Sections principales​

  • 1. Introduction

    • 1.1. Purpose (Objectif)
    • 1.2. History and Evolution (Histoire et évolution)
    • 1.3. Core Semantics (Sémantique de base)
    • 1.4. Specifications Obsoleted by This Document (Spécifications rendues obsolètes par ce document)
  • 2. Conformance (Conformité)

    • 2.1. Syntax Notation (Notation syntaxique)
    • 2.2. Requirements Notation (Notation des exigences)
    • 2.3. Length Requirements (Exigences de longueur)
    • 2.4. Error Handling (Gestion des erreurs)
    • 2.5. Protocol Version (Version du protocole)
  • 3. Terminology and Core Concepts (Terminologie et concepts de base)

    • 3.1. Resources (Ressources)
    • 3.2. Representations (Représentations)
    • 3.3. Connections, Clients, and Servers (Connexions, clients et serveurs)
    • 3.4. Messages
    • 3.5. User Agents (Agents utilisateurs)
    • 3.6. Origin Server (Serveur d'origine)
    • 3.7. Intermediaries (Intermédiaires)
    • 3.8. Caches
    • 3.9. Example Message Exchange (Exemple d'échange de messages)
  • 4. Identifiers in HTTP (Identificateurs dans HTTP)

    • 4.1. URI References (Références URI)
    • 4.2. HTTP-Related URI Schemes (Schémas URI liés à HTTP)
    • 4.3. Authoritative Access (Accès autoritaire)
  • 5. Fields (Champs)

    • 5.1. Field Names (Noms de champs)
    • 5.2. Field Lines and Combined Field Value (Lignes de champs et valeur de champ combinée)
    • 5.3. Field Order (Ordre des champs)
    • 5.4. Field Limits (Limites de champs)
    • 5.5. Field Values (Valeurs de champs)
    • 5.6. Common Rules for Defining Field Values (Règles communes pour définir les valeurs de champs)
  • 6. Message Abstraction (Abstraction de message)

    • 6.1. Framing and Completeness (Cadrage et complétude)
    • 6.2. Control Data (Données de contrôle)
    • 6.3. Header Fields (Champs d'en-tête)
    • 6.4. Content (Contenu)
    • 6.5. Trailer Fields (Champs de fin)
    • 6.6. Message Metadata (Métadonnées du message)
  • 7. Routing HTTP Messages (Routage des messages HTTP)

    • 7.1. Determining the Target Resource (Détermination de la ressource cible)
    • 7.2. Host and :authority
    • 7.3. Routing Inbound Requests (Routage des requêtes entrantes)
    • 7.4. Rejecting Misdirected Requests (Rejet des requêtes mal dirigées)
    • 7.5. Response Correlation (Corrélation des réponses)
    • 7.6. Message Forwarding (Transfert de messages)
    • 7.7. Message Transformations (Transformations de messages)
    • 7.8. Upgrade (Mise à niveau)
  • 8. Representation Data and Metadata (Données et métadonnées de représentation)

    • 8.1. Representation Data (Données de représentation)
    • 8.2. Representation Metadata (Métadonnées de représentation)
    • 8.3. Content-Type
    • 8.4. Content-Encoding
    • 8.5. Content-Language
    • 8.6. Content-Length
    • 8.7. Content-Location
    • 8.8. Validator Fields (Champs de validation)
  • 9. Methods (Méthodes)

    • 9.1. Overview (Aperçu)
    • 9.2. Common Method Properties (Propriétés communes des méthodes)
    • 9.3. Method Definitions (Définitions des méthodes)
  • 10. Message Context (Contexte du message)

    • 10.1. Request Context Fields (Champs de contexte de requête)
    • 10.2. Response Context Fields (Champs de contexte de réponse)
  • 11. HTTP Authentication (Authentification HTTP)

    • 11.1. Authentication Scheme (Schéma d'authentification)
    • 11.2. Authentication Parameters (Paramètres d'authentification)
    • 11.3. Challenge and Response (Défi et réponse)
    • 11.4. Credentials (Informations d'identification)
    • 11.5. Establishing a Protection Space (Realm) (Établissement d'un espace de protection)
    • 11.6. Authenticating Users to Origin Servers (Authentification des utilisateurs auprès des serveurs d'origine)
    • 11.7. Authenticating Clients to Proxies (Authentification des clients auprès des proxys)
  • 12. Content Negotiation (Négociation de contenu)

    • 12.1. Proactive Negotiation (Négociation proactive)
    • 12.2. Reactive Negotiation (Négociation réactive)
    • 12.3. Request Content Negotiation (Négociation du contenu de la requête)
    • 12.4. Content Negotiation Field Features (Caractéristiques des champs de négociation de contenu)
    • 12.5. Content Negotiation Fields (Champs de négociation de contenu)
  • 13. Conditional Requests (Requêtes conditionnelles)

    • 13.1. Preconditions (Préconditions)
    • 13.2. Evaluation of Preconditions (Évaluation des préconditions)
  • 14. Range Requests (Requêtes de plage)

    • 14.1. Range Units (Unités de plage)
    • 14.2. Range
    • 14.3. Accept-Ranges
    • 14.4. Content-Range
    • 14.5. Partial PUT
    • 14.6. Media Type multipart/byteranges
  • 15. Status Codes (Codes de statut)

    • 15.1. Overview of Status Codes (Aperçu des codes de statut)
    • 15.2. Informational 1xx (Informatif)
    • 15.3. Successful 2xx (Succès)
    • 15.4. Redirection 3xx
    • 15.5. Client Error 4xx (Erreur client)
    • 15.6. Server Error 5xx (Erreur serveur)
  • 16. Extending HTTP (Extension de HTTP)

    • 16.1. Method Extensibility (Extensibilité des méthodes)
    • 16.2. Status Code Extensibility (Extensibilité des codes de statut)
    • 16.3. Field Extensibility (Extensibilité des champs)
    • 16.4. Authentication Scheme Extensibility (Extensibilité des schémas d'authentification)
    • 16.5. Range Unit Extensibility (Extensibilité des unités de plage)
    • 16.6. Content Coding Extensibility (Extensibilité du codage de contenu)
    • 16.7. Upgrade Token Registry (Registre des jetons de mise à niveau)
  • 17. Security Considerations (Considérations de sécurité)

    • 17.1. Establishing Authority (Établissement de l'autorité)
    • 17.2. Risks of Intermediaries (Risques des intermédiaires)
    • 17.3-17.16. [Divers sujets de sécurité]
  • 18. IANA Considerations (Considérations IANA)

    • 18.1. URI Scheme Registration (Enregistrement de schéma URI)
    • 18.2. Method Registration (Enregistrement de méthode)
    • 18.3-18.10. [Autres registres]
  • 19. References (Références)

    • 19.1. Normative References (Références normatives)
    • 19.2. Informative References (Références informatives)

Annexes (Appendices)​


Ressources connexes​


Comprendre RFC 9110​

Réorganisation majeure de la spécification HTTP​

RFC 9110 est la dernière spécification HTTP de base publiée en 2022, consolidant et remplaçant la série précédente RFC 7230-7235:

Anciennes spécifications (2014):

  • RFC 7230 - Message Syntax and Routing (Syntaxe et routage des messages)
  • RFC 7231 - Semantics and Content (Sémantique et contenu)
  • RFC 7232 - Conditional Requests (Requêtes conditionnelles)
  • RFC 7233 - Range Requests (Requêtes de plage)
  • RFC 7234 - Caching (Mise en cache)
  • RFC 7235 - Authentication (Authentification)

Nouvelles spécifications (2022):

  • RFC 9110 - Semantics (ce RFC) ← Spécification de base unifiée
  • RFC 9111 - Caching (Mise en cache)
  • RFC 9112 - HTTP/1.1
  • RFC 9113 - HTTP/2
  • RFC 9114 - HTTP/3

Importance​

RFC 9110 définit la sémantique partagée entre toutes les versions HTTP, qu'il s'agisse de HTTP/1.1, HTTP/2 ou HTTP/3. Cela rend le protocole HTTP plus unifié et plus facile à comprendre.


Note: Ce document est en cours de traduction, et le contenu des chapitres sera progressivement complété.