2.2. Composants dérivés (Derived Components)
2.2. Composants dérivés
Outre les champs HTTP, plusieurs composants différents peuvent être dérivés des données de contrôle, du contexte de signature ou d'autres aspects du message HTTP signé. De tels composants dérivés peuvent être inclus dans la base de signature en définissant un nom de composant, des paramètres éventuels, des cibles de message et la méthode de dérivation de leur valeur de composant.
Les noms de composants dérivés DOIVENT commencer par le caractère arobase (@). Cela distingue les noms de composants dérivés des noms de champs HTTP, qui ne peuvent pas contenir le caractère @ conformément à la Section 5.1 de [HTTP]. Les processeurs de signatures de message HTTP DOIVENT traiter les noms de composants dérivés séparément des noms de champs, comme à la Section 7.5.1.
Cette spécification définit les composants dérivés suivants:
@method La méthode utilisée pour une requête (Section 2.2.1).
@target-uri L'URI cible complète pour une requête (Section 2.2.2).
@authority L'autorité de l'URI cible pour une requête (Section 2.2.3).
@scheme Le schéma de l'URI cible pour une requête (Section 2.2.4).
@request-target La cible de requête (Section 2.2.5).
@path La partie chemin absolu de l'URI cible pour une requête (Section 2.2.6).
@query La partie requête (query) de l'URI cible pour une requête (Section 2.2.7).
@query-param Un paramètre de requête analysé et encodé de l'URI cible pour une requête (Section 2.2.8).
@status Le code d'état pour une réponse (Section 2.2.9).
D'autres noms de composants dérivés sont définis dans le registre « HTTP Signature Derived Component Names » (Section 6.4).
Les valeurs des composants dérivés sont tirées du contexte du message cible pour la signature. Ce contexte comprend des informations sur le message lui-même, telles que ses données de contrôle, ainsi que tout état et contexte supplémentaires détenus par le signataire ou le vérificateur. En particulier, lors de la signature d'une réponse, le signataire peut inclure tout composant dérivé de la requête d'origine au moyen du paramètre req (Section 2.4).
requête: Valeurs dérivées de, et résultats appliqués à, un message de requête HTTP comme décrit à la Section 3.4 de [HTTP]. Si le message cible de la signature est une réponse, les composants dérivés ciblant les messages de requête peuvent être inclus au moyen du paramètre req tel que défini à la Section 2.4.
réponse: Valeurs dérivées de, et résultats appliqués à, un message de réponse HTTP comme décrit à la Section 3.4 de [HTTP].
requête, réponse: Valeurs dérivées de, et résultats appliqués à, soit un message de requête, soit un message de réponse.
La définition d'un composant dérivé DOIT préciser tous les types de messages cibles auxquels il peut s'appliquer.
Les valeurs des composants dérivés DOIVENT être limitées aux caractères imprimables et aux espaces et NE DOIVENT PAS contenir de caractères de saut de ligne. Les valeurs des composants dérivés NE DOIVENT PAS commencer ni se terminer par des caractères d'espace.