Aller au contenu principal

1. Introduction

Le protocole de transfert hypertexte (Hypertext Transfer Protocol, HTTP) est un protocole sans état de niveau application de type requête/réponse qui utilise une sémantique extensible et des charges utiles de messages auto-descriptives pour une interaction flexible avec les systèmes d'information hypertexte basés sur le réseau. Ce document constitue la partie 2 de la spécification en sept parties qui définit le protocole appelé "HTTP/1.1" et, dans son ensemble, rend obsolète la RFC 2616.

HTTP fournit une interface uniforme pour interagir avec une ressource (Section 2), quels que soient son type, sa nature ou son implémentation, via la manipulation et le transfert de représentations (Section 3).

La sémantique HTTP comprend les intentions définies par chaque méthode de requête (Section 4), les extensions de cette sémantique qui pourraient être décrites dans les champs d'en-tête de requête (Section 5), la signification des codes d'état pour indiquer une réponse lisible par machine (Section 6), ainsi que d'autres données de contrôle et métadonnées de ressource qui pourraient être fournies dans les champs d'en-tête de réponse (Section 7).

Ce document définit la sémantique des requêtes et réponses HTTP ainsi que les champs d'en-tête associés qui fournissent cette sémantique. D'autres parties de la spécification HTTP/1.1 définissent comment transmettre un message (Partie 1 - Message Syntax and Routing), les requêtes conditionnelles et le contrôle du cache (Partie 4 - Conditional Requests), les requêtes de plage (Partie 5 - Range Requests) et l'authentification (Partie 7 - Authentication).

1.1. Conformance and Error Handling (Conformité et Gestion des Erreurs)

Les mots-clés "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" et "OPTIONAL" dans ce document doivent être interprétés comme décrit dans [RFC2119].

Les critères de conformité et les considérations concernant la gestion des erreurs sont définis dans la Section 2.5 de [RFC7230].

1.2. Syntax Notation (Notation Syntaxique)

Cette spécification utilise la notation Augmented Backus-Naur Form (ABNF) de [RFC5234] avec une extension de liste, définie dans la Section 7 de [RFC7230], qui permet une définition compacte de listes séparées par des virgules en utilisant un opérateur '#' (similaire à la façon dont l'opérateur '*' indique la répétition). L'Appendice B décrit les règles importées d'autres documents. L'Appendice C montre la grammaire collectée avec tous les opérateurs de liste développés en notation ABNF standard.

Cette spécification utilise les termes "character", "character encoding scheme", "charset" et "protocol element" tels qu'ils sont définis dans [RFC6365].