Lors du test de this page avec Page Speed, je reçois l’erreur Specify a character set
:
The following resources have no character set specified in their HTTP headers. Specifying a character set in HTTP headers can speed up browser rendering.
La balise Content-Type
est présente et la page a également été enregistrée avec le codage UTF-8. D'où vient donc l'erreur?
Il fait référence à En-têtes de réponse et non au corps du document ("balise Content-Type").
Si vous cochez les en-têtes de réponse de votre page avec un débogueur HTTP (par exemple, panneau réseau de Firebug pour Firefox, ou un onglet similaire de Outils de développement dans Google Chrome/Internet Explorer/Safari/Opera), vous verrez cette ligne:
Content-Type: text/html
En même temps, si vous cochez la même chose pour this page, vous verrez:
Content-Type: text/html; charset=utf-8
Page Speed fait référence à la partie manquante. Avoir le jeu de caractères correct présent dans les en-têtes accélérera le rendu de la page n pe. Avec un jeu de caractères incorrect spécifié dans l'en-tête de la réponse (ou aucun jeu de caractères du tout), le navigateur doit analyser/interpréter la page jusqu'à ce qu'il trouve la déclaration de jeu de caractères correcte (la ligne <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
), puis relance le processus de rendu si le caractère set est différent du paramétrage par défaut du navigateur.
La pénalité en termes de performances n’est pas grande du tout: pour l’utilisateur, elle est invisible à moins que du matériel vraiment ancien/lent soit utilisé (bien que cela diffère d’un navigateur à l’autre et d’une version du navigateur à l’autre). Peut-être y a-t-il d'autres "pénalités" directement liées à cela, mais personnellement, je ne les connais pas.
Correction: Si vous générez vous-même cet en-tête (dans votre script PHP), vous devez le modifier pour inclure également charset. Si votre script ne fait pas de telles manipulations d'en-tête, il s'agit d'un problème de mauvaise configuration du serveur.