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.
Fonction | partage de cache répartis |
---|---|
Sigle | HTCP |
Date de création | janvier 2000 |
Port | 4827 (UDP et UDP) |
RFC | 2576 |
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
modifierUn 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
modifier- RFC 2756[1] - Protocole de mise en cache Hypertexte (HTCP/0.0)