Hyper Text Caching Protocol
HTCP, HyperText Caching Protocol ou Protocole de cache hypertexte est un protocole expérimental décrit dans la RFC 2756[1] utilisé pour partager et découvrir les contenus des caches (antémémoires) HTTP entre serveurs mandataires. Il permet également la gestion d'un groupe de serveurs cache HTTP et la surveillance mutuelle.
Contrairement au protocole ICP conçu pour le HTTP/0.9, qui ne conserve que les donnĂ©es d'un objet liĂ©es Ă une URI, HTCP conserve Ă©galement les Ă©lĂ©ments d'en-tĂȘte lui permettant de partager diffĂ©rents objets en cache liĂ©s Ă une mĂȘme URI, assurant une compatibilitĂ© HTTP/1.0 et HTTP/1.1.
Il étend les possibilités de gestion des caches en partageant :
- les ajouts ;
- les suppressions ;
- les demandes de suppression immédiates ;
- des indications (sur quel serveur cache tiers trouver un objet indisponible sur la toile...) ;
sur des objets web au sein d'une grappe de serveurs caches implémentant HTCP.
Un mécanisme d'authentification entre serveurs de cache permet de n'accepter des modifications de cache que des serveurs authentifiés. Ce mécanisme permet d'assurer l'intégrité des caches d'un groupe de serveurs de confiance. La sécurité repose sur un (ou plusieurs) secret partagé.
Les serveurs mandataires qui supportent HTCP :
Structure des messages HTCP
Un message HTCP comprend trois sections:
- l'en-tĂȘte (header),
- les données (data),
- l'authentification.
En-tĂȘte La longueur de l'en-tĂȘte est fixĂ©e Ă 6 octets.
Données Les données ont une longueur variable limitée par la taille maximale d'un message HTCP moins la taille de l'authentification.
Authentification Permet de transférer les éléments d'authentification inter serveurs de cache.
L'en-tĂȘte ICP contient trois champs.
Bit offset | Bits 0â7 | 8â15 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Longueur du message | |||||||||||||||
16 | Longueur du message | |||||||||||||||
32 | Version majeure | Version mineure |
La longueur est la longueur totale du message HTCP. Les versions majeures ne sont pas forcément rétrocompatibles.
La partie donnĂ©es dĂ©pend de la version HTCP signalĂ©e dans l'en-tĂȘte.
Bit offset | Bits 0â7 | 8â15 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Longueur des données | |||||||||||||||
16 | Opcode | Code réponse | Réservé | F1 | RR | |||||||||||
32 | Trans-ID | |||||||||||||||
48 | Trans-ID | |||||||||||||||
64+ | Données |
Le champ RR désigne s'il s'agit d'une demande (1) ou d'une réponse (0).
La partie authentification est définie comme suit :
Bit offset | Bits 0â7 | 8â15 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Longueur de l'authentification | |||||||||||||||
16 | Heure de l'authentification | |||||||||||||||
32 | Heure de l'authentification | |||||||||||||||
48 | Expiration de signature | |||||||||||||||
64 | Expiration de signature | |||||||||||||||
80 | nom de la clé | |||||||||||||||
n | Signature |
Liens externes
- RFC 2756[1] - Protocole de mise en cache Hypertexte (HTCP/0.0)