web-dev-qa-db-fra.com

Jeu de caractères non spécifié dans l'erreur d'en-têtes HTTP

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?

14
Alex

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.

19
LazyOne