{"id":4303,"date":"2019-03-20T07:05:39","date_gmt":"2019-03-20T06:05:39","guid":{"rendered":"https:\/\/assistance.groupemagiconline.com\/?post_type=ht_kb&#038;p=4303"},"modified":"2022-11-25T09:32:02","modified_gmt":"2022-11-25T08:32:02","slug":"optimiser-les-performances-de-mon-site","status":"publish","type":"ht_kb","link":"https:\/\/assistance.groupemagiconline.com\/en\/knowledge-base\/optimiser-les-performances-de-mon-site\/","title":{"rendered":"Optimize the performance of my site"},"content":{"rendered":"<p style=\"text-align: justify;\">Il existe plusieurs fa\u00e7ons d&rsquo;am\u00e9liorer les performances du site, ces m\u00e9thodes sont relativement g\u00e9n\u00e9riques et ne devraient pas poser de r\u00e9els soucis dans la majorit\u00e9 des cas d&rsquo;utilisation mais nous vous recommandons de ne pas les mettre en \u0153uvre si vous ne les comprenez pas.<\/p>\n<div id=\"mw-content-text\" class=\"mw-content-ltr\" dir=\"ltr\" lang=\"fr\">\n<h2 style=\"text-align: left;\"><span id=\"D.C3.A9finir_des_dates_d.27expiration_pour_les_fichiers_statiques_pour_forcer_leur_mise_en_cache_par_le_navigateur_client\" class=\"mw-headline\">D\u00e9finir des dates d&rsquo;expiration pour les fichiers statiques pour forcer leur mise en cache par le navigateur client<\/span><\/h2>\n<p style=\"text-align: justify;\"><i>Une m\u00e9thode simple consiste \u00e0 utiliser les modules expir\u00e9s et headers de apache pour jouer sur les expirations des fichiers en cache c\u00f4t\u00e9 navigateur, elle a l&rsquo;avantage d&rsquo;\u00eatre utilisable sur tous les types d&rsquo;<a href=\"https:\/\/www.magic.fr\/hebergement\/\">h\u00e9bergements<\/a> (mutualis\u00e9, Pr\u00e9mium, VDS ou D\u00e9di\u00e9)\u00a0:<\/i><\/p>\n<p style=\"text-align: justify;\">Afin d&rsquo;\u00e9viter que les navigateurs aient \u00e0 recharger \u00e0 chaque visite (ou changement de page sur un m\u00eame site par exemple) certains fichiers statiques (fichiers CSS, images ou scripts Javascript par exemple) parfois partag\u00e9s sur diff\u00e9rentes pages du site, il est possible de donner des dates d&rsquo;expiration pour certains fichiers\/types de fichiers c\u00f4t\u00e9 serveur (par d\u00e9faut le serveur ne donne aucune directive et c&rsquo;est au navigateur de d\u00e9cider s&rsquo;il doit ou non redemander le(s) fichier(s) au serveur et quand les recharger. Il est donc possible de diminuer le nombre de fichiers que le navigateur du visiteur a redemand\u00e9 et \u00e9ventuellement recharg\u00e9 \u00e0 chaque page ou visite et donc permettre un chargement plus rapide du site (notamment en cas de connexion lente ou de site dont le poids est important).<\/p>\n<p style=\"text-align: justify;\">Vous pouvez observer le comportement de votre navigateur (et du serveur) en utilisant les outils pour d\u00e9veloppeur int\u00e9gr\u00e9s dans les navigateurs modernes. Si en passant d&rsquo;une page \u00e0 une autre il y a des requ\u00eates ayant comme code r\u00e9ponse 304 Not Modified (colonne Statut), c&rsquo;est que le navigateur a redemand\u00e9 au serveur le fichier mais que celui l\u00e0 n&rsquo;ayant pas \u00ab\u00a0expir\u00e9\u00a0\u00bb ni chang\u00e9 n&rsquo;a pas fait re-t\u00e9l\u00e9charger au navigateur le fichier. Si certains fichiers sont en code 200 mais gris\u00e9s c&rsquo;est que le navigateur n&rsquo;a m\u00eame pas fait de demande au serveur et a directement affich\u00e9 le fichier qu&rsquo;il poss\u00e9dait dans son cache.<\/p>\n<p style=\"text-align: justify;\">Pour savoir si un Etag \u00e0 \u00e9t\u00e9 envoy\u00e9, ou retrouver une date d&rsquo;expiration pour un fichier ou une page, cliquez sur le [+] \u00e0 gauche de la requ\u00eate GET correspondant et regardez dans la rubrique \u00ab\u00a0R\u00e9ponses\u00a0\u00bb de l&rsquo;onglet \u00ab\u00a0En-T\u00eates\u00a0\u00bb<\/p>\n<p style=\"text-align: justify;\">Vous pourrez y voir par exemple\u00a0:<\/p>\n<pre>Date\tWed, 30 Mar 2011 16:30:50 GMT\r\nServer\tApache\/2.2.17\r\nLast-Modified\tTue, 29 Mar 2011 23:58:50 GMT\r\nEtag\t\"179abc5-5921-49fa7d7758280\"\r\nAccept-Ranges\tbytes\r\nCache-Control\tmax-age=172800\r\nExpires\tFri, 01 Apr 2011 16:26:03 GMT\r\nVary\tAccept-Encoding\r\nContent-Encoding\tgzip\r\nContent-Length\t5716\r\nContent-Type\ttext\/css\r\n<\/pre>\n<p style=\"text-align: justify;\">O\u00f9 l&rsquo;on peut voir qu&rsquo;un Etag est fourni (voir plus loin), que la derni\u00e8re requ\u00eate au fichier date du 30\/03\/2011 \u00e0 16:30, que la derni\u00e8re modification du fichier (c\u00f4t\u00e9 serveur) date du 29\/03\/2011 et que ce dernier expirera le 01\/04\/2011 et qu&rsquo;il ne devra pas rester plus de 172800 secondes en cache c\u00f4t\u00e9 client (au del\u00e0, si ce n&rsquo;est pas d\u00e9j\u00e0 fait, le navigateur l&rsquo;\u00e9liminera tout seul de son cache).<\/p>\n<p style=\"text-align: justify;\">Vous pouvez pour cela utiliser un fichier .htaccess \u00e0 la racine du site en question en ajoutant par exemple\u00a0:<\/p>\n<pre>   &lt;FilesMatch \"\\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$\"&gt;\r\n       FileEtag none\r\n       Header unset Etag\r\n   &lt;\/FilesMatch&gt;\r\n   ExpiresActive on\r\n   ExpiresByType image\/jpg \"access plus 4 days\"\r\n   ExpiresByType image\/gif \"access plus 7 days\"\r\n   ExpiresByType image\/jpeg \"access plus 4 days\"\r\n   ExpiresByType image\/png \"access plus 4 days\"\r\n   ExpiresByType image\/x-icon \"access plus 7 days\"\r\n   ExpiresByType text\/css \"access plus 48 hours\"\r\n   ExpiresByType application\/javascript \"access plus 48 hours\"\r\n   ExpiresByType application\/x-javascript \"access plus 48 hours\"\r\n   ExpiresByType application\/x-shockwave-flash \"access plus 48 hours\"\r\n   ExpiresDefault \"access plus 1 days\"\r\n<\/pre>\n<p style=\"text-align: justify;\">La premi\u00e8re partie (dans la directive FilesMatch) fait que tous les fichiers ayant pour extension .ico, .pdf, .flv&#8230; n&rsquo;auront pas d&rsquo;Etag et que ce dernier ne sera pas transmis.<\/p>\n<p style=\"text-align: justify;\"><a class=\"external text\" href=\"http:\/\/httpd.apache.org\/docs\/2.2\/mod\/core.html#fileetag\" rel=\"nofollow\">Le Etag<\/a>\u00a0est un identifiant cr\u00e9e par le serveur Apache pour chaque fichier, si ce dernier est modifi\u00e9 le tag changera\u00a0; cela permet donc au navigateur de comparer le tag envoy\u00e9 par le serveur \u00e0 celui qu&rsquo;il a en cache afin de pouvoir r\u00e9cup\u00e9rer en cas de diff\u00e9rence \u00e0 nouveau le fichier.<\/p>\n<p style=\"text-align: justify;\">Le probl\u00e8me est que l&rsquo;ent\u00eate Etag est redondant avec l&rsquo;ent\u00eate \u00ab\u00a0Last-Modified\u00a0\u00bb \u00e9galement envoy\u00e9 par Apache, cette ent\u00eate n&rsquo;\u00e9tant pr\u00e9cise qu&rsquo;\u00e0 la seconde pr\u00e8s elle peut ne pas suffire dans le cas de fichiers dynamiques (fichiers g\u00e9n\u00e9r\u00e9s \u00e0 la vol\u00e9e par des scripts PHP par exemple) si ces derniers ont \u00e9t\u00e9 modifi\u00e9s plus d&rsquo;une fois par seconde mais se r\u00e9v\u00e9ler inutile dans le cas de fichiers CSS ou Javascript n&rsquo;\u00e9tant modifi\u00e9s que rarement (et manuellement) par exemple.<\/p>\n<p style=\"text-align: justify;\">Si le Etag est activ\u00e9, \u00e0 chaque demande de fichier, le serveur Apache r\u00e9g\u00e9n\u00e9rera un Etag en v\u00e9rifiant les dates de derni\u00e8res modifications du fichier, sa taille et o\u00f9 il est situ\u00e9 sur le syst\u00e8me de fichier; cela consommera des ressources et prendra plus du temps que de seulement r\u00e9cup\u00e9rer la date de derni\u00e8re modification (qui est elle aussi fournie par d\u00e9faut), cela implique \u00e9galement que le navigateur doit demander l&rsquo;Etag, v\u00e9rifier s&rsquo;il correspond \u00e0 celui qu&rsquo;il a en cache avant de redemander \u00e9ventuellement le fichier, si les Etag sont d\u00e9sactiv\u00e9s le navigateur ne demandera pas le fichier s&rsquo;il l&rsquo;a d\u00e9j\u00e0 en cache et qu&rsquo;il n&rsquo;est pas \u00ab\u00a0expir\u00e9\u00a0\u00bb.<\/p>\n<p style=\"text-align: justify;\">Il est \u00e9galement possible de d\u00e9sactiver le header \u00ab\u00a0Last-Modified\u00a0\u00bb en rajoutant au sein du tag FilesMatch\u00a0: Header unset Last-Modified<\/p>\n<p style=\"text-align: justify;\">Il est recommand\u00e9 de bien tester le comportement du navigateur si Etag et Last-Modified sont d\u00e9sactiv\u00e9s et de r\u00e9gler en fonction les dur\u00e9es d&rsquo;expiration avec le mod_expires.<br \/>\n<a class=\"external text\" href=\"http:\/\/httpd.apache.org\/docs\/2.2\/mod\/mod_headers.html\" rel=\"nofollow\">Documentation officielle du mod_headers<\/a><\/p>\n<p style=\"text-align: justify;\">Dans la deuxi\u00e8me partie de l&rsquo;exemple, la directive ExpiresByType suivie du mimetype permet de d\u00e9finir la dur\u00e9e de validit\u00e9 des fichiers d&rsquo;une extension pr\u00e9cise apr\u00e8s le dernier acc\u00e8s par l&rsquo;utilisateur. Cela permet par exemple \u00e0 un navigateur de ne pas rev\u00e9rifier les fichiers jpg qu&rsquo;il a en cache pendant une dur\u00e9e de 4 jours en gardant \u00ab\u00a0en priorit\u00e9\u00a0\u00bb les fichiers qui ont une expiration plus lointaine par rapport \u00e0 ceux qui n&rsquo;en ont pas de d\u00e9finie.<br \/>\n<a class=\"external text\" href=\"http:\/\/httpd.apache.org\/docs\/2.2\/mod\/mod_expires.html\" rel=\"nofollow\">Documentation officielle du mod_expires<\/a><\/p>\n<h2 style=\"text-align: justify;\"><span id=\"Utilisation_d.27un_module_de_cache_PHP\" class=\"mw-headline\">Utilisation d&rsquo;un module de cache PHP<\/span><\/h2>\n<p style=\"text-align: justify;\">Il existe principalement deux types de cache en PHP\u00a0:<\/p>\n<p style=\"text-align: justify;\"><strong><span id=\"Le_cache_applicatif\" class=\"mw-headline\">Le cache applicatif<\/span><\/strong><\/p>\n<p style=\"text-align: justify;\">Le cache applicatif est int\u00e9gr\u00e9 \u00e0 l&rsquo;application PHP et va permettre de ne pas recalculer \u00e0 chaque acc\u00e8s \u00e0 une page tout le code, principalement certaines parties ne changeant pas \u00e0 chaque acc\u00e8s (par exemple: la mise en page dont la majeure partie ne changera pas, l&rsquo;inclusion de texte contenu dans un fichier n&rsquo;ayant pas \u00e9t\u00e9 modifi\u00e9 depuis le dernier acc\u00e8s ou des calculs qui sont r\u00e9currents avec des param\u00e8tres identiques).<\/p>\n<p style=\"text-align: justify;\">Le \u00ab\u00a0r\u00e9sultat\u00a0\u00bb du traitement de ces parties de codes qui ne change pas est sauvegard\u00e9 et ensuite repris directement \u00e0 la prochaine utilisation, \u00e9vitant ainsi certains calculs\/acc\u00e8s disque inutiles, cela \u00e9vite \u00e9galement d&rsquo;avoir \u00e0 re-r\u00e9cup\u00e9rer certaines donn\u00e9es aupr\u00e8s du serveur de bases de donn\u00e9es.<\/p>\n<p style=\"text-align: justify;\">La plupart des framework PHP tels que Symfony ou Zend proposent de mani\u00e8re transparente pour le d\u00e9veloppeur\/utilisateur un syst\u00e8me de cache, il en va de m\u00eame pour la plupart des CMS et autres outils PHP tels que PHPBB, Prestashop ou encore WordPress qui int\u00e8grent des syst\u00e8mes de cache (parfois sous forme de modules) qui ne sont pas activ\u00e9s par d\u00e9faut mais qui une fois activ\u00e9s permettent d&rsquo;augmenter drastiquement les performances.<\/p>\n<p style=\"text-align: justify;\">Ce type de cache est g\u00e9n\u00e9ralement d\u00e9sactiv\u00e9 par d\u00e9faut car lorsque l&rsquo;on modifie par exemple un th\u00e8me (ou template), ce dernier pourra ne pas \u00eatre \u00ab\u00a0re-calcul\u00e9\u00a0\u00bb imm\u00e9diatement et donc ne pas afficher les modifications apport\u00e9es directement, il est donc recommand\u00e9 lorsque l&rsquo;on configure, code ou modifie le th\u00e8me d&rsquo;un site de d\u00e9sactiver le cache (ou forcer sa re-cr\u00e9ation quand possible apr\u00e8s avoir apport\u00e9 les modifications).<\/p>\n<p style=\"text-align: justify;\">Ce type d&rsquo;optimisation est probablement l&rsquo;un des plus int\u00e9ressants au niveau des temps de chargement du site car le navigateur client ne peut commencer \u00e0 t\u00e9l\u00e9charger les fichiers du site qu&rsquo;une fois qu&rsquo;il a commenc\u00e9 \u00e0 recevoir la page qui dans son code HTML contient les chemins des autres fichiers \u00e0 r\u00e9cup\u00e9rer et comme le PHP ne renvoie la page au serveur Apache qu&rsquo;une fois celle ci ayant \u00e9t\u00e9 totalement \u00ab\u00a0g\u00e9n\u00e9r\u00e9e\u00a0\u00bb, si cette derni\u00e8re est plus longue \u00e0 g\u00e9n\u00e9rer, le chargement du site en sera d&rsquo;autant plus longue.<\/p>\n<p style=\"text-align: justify;\"><strong><span id=\"Le_cache_PHP_cot.C3.A9_serveur_.28seulement_pour_VDS_et_D.C3.A9di.C3.A9s.29\" class=\"mw-headline\">Le cache PHP cot\u00e9 serveur (seulement pour VDS et D\u00e9di\u00e9s)<\/span><\/strong><\/p>\n<p style=\"text-align: justify;\"><i>Le cache de code machine \u00e9galement appel\u00e9 cache d&rsquo;opcodes, il met en cache en m\u00e9moire du code PHP pr\u00e9-calcul\u00e9 en code machine et permet de gagner en temps de calcul et donc de chargement.<\/i><\/p>\n<p style=\"text-align: justify;\">Ce type de cache a pr\u00e9sent\u00e9 l&rsquo;avantage de ne pas n\u00e9cessiter d&rsquo;adaptation\/configuration sp\u00e9cifique de la part du script PHP ex\u00e9cut\u00e9, n&rsquo;importe quel script PHP est compatible et il ne pose pas de probl\u00e8me avec les contenus dynamiques. Pour utiliser ce type de cache, le PHP doit charger un module adapt\u00e9, les trois plus courant \u00e0 l&rsquo;heure actuellement sont eAccelerator, APC et xCache\u00a0; eAccelerator \u00e0 tendance \u00e0 ne plus \u00eatre utilis\u00e9 car moins maintenu que les deux derniers et g\u00e9n\u00e9ralement moins performant, APC est \u00e0 peu pr\u00e8s aussi efficace que xCache mais poss\u00e8de certaines fonctionnalit\u00e9s en moins (un panneau d&rsquo;administration permettant de suivre l&rsquo;utilisation du cache et d&rsquo;en v\u00e9rifier le contenu est disponible sous xCache par exemple) mais est par contre disponible depuis plus longtemps (sous Debian 4.0 notamment alors que xCache n&rsquo;est disponible sous forme de paquet pr\u00e9-compil\u00e9 qu&rsquo;\u00e0 partir de Debian 5.0). Il est donc possible de les installer en tapant\u00a0:<\/p>\n<pre>apt-get install php5-xcache\r\n<\/pre>\n<p style=\"text-align: justify;\">Ou\u00a0:<\/p>\n<pre>apt-get install php-apc\r\n<\/pre>\n<p style=\"text-align: justify;\">(il n&rsquo;est possible d&rsquo;utiliser qu&rsquo;un de ces modules \u00e0 la fois)<\/p>\n<p style=\"text-align: justify;\">Vous pouvez ensuite adapter la configuration \u00e0 vos besoins (taille du cache, nombre d&rsquo;entr\u00e9es maximales ou encore activer le cache de variables pour xcache par exemple)<br \/>\n<a class=\"external text\" href=\"http:\/\/xcache.lighttpd.net\/wiki\/XcacheIni\" rel=\"nofollow\">Liste des options de configuration pour xCache<\/a><br \/>\n<a class=\"external text\" href=\"http:\/\/www.php.net\/manual\/fr\/apc.configuration.php\" rel=\"nofollow\">Liste des options de configuration pour APC<\/a><\/p>\n<h2 style=\"text-align: left;\"><span id=\"Compression_de_donn.C3.A9es_transmises_par_le_serveur_Apache_.28VDS.2C_D.C3.A9di.C3.A9s.2C_Permium_seulement.29\" class=\"mw-headline\">Compression de donn\u00e9es transmises par le serveur Apache (VDS, D\u00e9di\u00e9s, Permium seulement)<\/span><\/h2>\n<p style=\"text-align: justify;\"><i>Le module Apache deflate permet de compresser \u00ab\u00a0\u00e0 la vol\u00e9e\u00a0\u00bb certains fichiers tels que le html, le Javascript ou le CSS. Ce module activ\u00e9 par d\u00e9faut sur mutualis\u00e9 permet ainsi r\u00e9duire la quantit\u00e9 de donn\u00e9es \u00e0 charger pour le visiteur du site.<\/i><\/p>\n<p style=\"text-align: justify;\">Sur l&rsquo;installation par d\u00e9faut d&rsquo;Apache, le module deflate est install\u00e9 mais pas forc\u00e9ment actif et sa configuration par d\u00e9faut ne compresse que les fichiers html, il est possible de l&rsquo;utiliser aussi pour les fichiers de type CSS et Javascript (qui peuvent \u00e0 eux seuls faire plusieurs centaines de kilo-octets en fonction des sites), le taux de compression moyen se situe entre 50 et 75% sur ces types de fichiers, ce qui n&rsquo;est pas n\u00e9gligeable.<\/p>\n<p style=\"text-align: justify;\">Vous pouvez voir quel poids auraient fait les fichiers avec le module activ\u00e9 en utilisant\u00a0<a class=\"external text\" href=\"http:\/\/code.google.com\/intl\/fr\/speed\/page-speed\/download.html\" rel=\"nofollow\">le module Pagespeed<\/a>\u00a0pour Firefox (ou sa version pour Google Chrome), en allant dans l&rsquo;onglet \u00ab\u00a0Pagespeed\u00a0\u00bb puis en cliquant sur \u00ab\u00a0Analyze Performance\u00a0\u00bb dans la rubrique \u00ab\u00a0Enable Compression\u00a0\u00bb et avoir un message tel que\u00a0:<\/p>\n<pre>Compressing the following resources with gzip could reduce their transfer size by 100,1KiB (72% reduction). \r\n<\/pre>\n<p style=\"text-align: justify;\">Ce qui veut, dans ce cas dire que la page pourrait passer d&rsquo;environ 150ko \u00e0 charger \u00e0 50ko avec la compression activ\u00e9e.<\/p>\n<p style=\"text-align: justify;\">Pour activer le module, il suffit depuis un shell de taper la commande\u00a0:<\/p>\n<pre>a2enmod deflate\r\n<\/pre>\n<p style=\"text-align: justify;\">Pour activer la compression des fichiers autres que html, il faut modifier le fichier \/etc\/apache2\/mods-available\/deflate.conf tel quel\u00a0:<\/p>\n<pre>&lt;IfModule mod_deflate.c&gt;\r\n         # these are known to be safe with MSIE 6\r\n         AddOutputFilterByType DEFLATE text\/html text\/plain text\/xml\r\n\r\n         # everything else may cause problems with MSIE 6\r\n         AddOutputFilterByType DEFLATE text\/css\r\n         AddOutputFilterByType DEFLATE application\/x-javascript application\/javascript application\/ecmascript\r\n         AddOutputFilterByType DEFLATE application\/rss+xml\r\n\r\n         BrowserMatch ^Mozilla\/4.[0678] no-gzip\r\n         BrowserMatch bMSIEs(7|8|9)\u00a0!no-gzip\u00a0!gzip-only-text\/html\r\n&lt;\/IfModule&gt;\r\n<\/pre>\n<p style=\"text-align: justify;\">(les deux derni\u00e8res lignes d\u00e9sactivent la compression pour les fichiers autres que html sous ie6 et inf\u00e9rieurs qui peuvent poser probl\u00e8me en affichant parfois des pages blanches)<\/p>\n<p style=\"text-align: justify;\">Il faut ensuite relancer <a href=\"https:\/\/assistance.groupemagiconline.com\/knowledge-base\/erreur-apache\/\">Apache<\/a> en tapant cette commande\u00a0:<\/p>\n<pre>\/etc\/init.d\/apache2 restart\r\n<\/pre>\n<p style=\"text-align: justify;\">Vous devriez maintenant, dans \u00ab\u00a0Pagespeed\u00a0\u00bb avoir un check vert \u00e0 cot\u00e9 de \u00ab\u00a0Compression Enabled\u00a0\u00bb si vous testez un site h\u00e9berg\u00e9 sur la machine.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>There are several ways to improve site performance, these methods are relatively generic and should not be a real concern in most use cases but we recommend that you do not implement them if you do not understand them. Set expiration dates for...<\/p>","protected":false},"author":52,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[26],"ht-kb-tag":[669],"class_list":["post-4303","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-autres-services","ht_kb_tag-site-web"],"_links":{"self":[{"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/ht-kb\/4303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/comments?post=4303"}],"version-history":[{"count":1,"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/ht-kb\/4303\/revisions"}],"predecessor-version":[{"id":11475,"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/ht-kb\/4303\/revisions\/11475"}],"wp:attachment":[{"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/media?parent=4303"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/ht-kb-category?post=4303"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/assistance.groupemagiconline.com\/en\/wp-json\/wp\/v2\/ht-kb-tag?post=4303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}