Annexe B. Considérations opérationnelles pour les serveurs (Operational Considerations for Servers)
La trame ORIGIN permet à un serveur d'indiquer pour quelles origines une connexion donnée devrait être utilisée. L'ensemble des origines annoncées à l'aide de ce mécanisme est sous le contrôle du serveur ; les serveurs ne sont pas obligés de l'utiliser ou d'annoncer toutes les origines pour lesquelles ils pourraient être en mesure de répondre à une requête.
Par exemple, elle peut être utilisée pour informer le client que la connexion ne doit être utilisée que pour l'origine basée sur SNI, en envoyant une trame ORIGIN vide. Ou, un plus grand nombre d'origines peut être indiqué en incluant une charge utile.
Généralement, cette information est plus utile à envoyer avant d'envoyer toute partie d'une réponse qui pourrait initier une nouvelle connexion ; par exemple, les champs d'en-tête de réponse "Link" [RFC8288], ou des liens dans le corps de la réponse.
Par conséquent, la trame ORIGIN devrait être envoyée dès que possible sur une connexion, idéalement avant toute trame HEADERS ou PUSH_PROMISE.
Cependant, s'il est souhaitable d'associer un grand nombre d'origines à une connexion, le faire pourrait introduire une latence perçue par l'utilisateur final, en raison de leur taille. Par conséquent, il pourrait être nécessaire de sélectionner un ensemble "central" d'origines à envoyer initialement, et d'étendre l'ensemble d'origines pour lequel la connexion est utilisée avec des trames ORIGIN ultérieures plus tard (par exemple, lorsque la connexion est inactive).
Cela dit, les expéditeurs sont encouragés à inclure autant d'origines que possible dans une seule trame ORIGIN ; les clients doivent prendre des décisions concernant la création de connexions à la volée, et si l'ensemble d'origines est divisé sur plusieurs trames, leur comportement pourrait être sous-optimal.
Les expéditeurs notent que, selon la Section 4, Étape 5, de [RFC6454], les valeurs dans un en-tête ORIGIN doivent être normalisées à la casse avant la sérialisation.
Enfin, les serveurs qui hébergent des services alternatifs [RFC7838] devront annoncer explicitement leurs origines lors de l'envoi d'ORIGIN, car le contenu par défaut de l'ensemble d'origines (selon la Section 2.3) ne contient aucune origine de services alternatifs, même si elles ont été utilisées précédemment sur la connexion.