Juego de caracteres no especificado en error de encabezados HTTP


15

Al probar esta página con Page Speed, aparece el Specify a character seterror:

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 Content-Typeetiqueta está presente y la página también se guardó con codificación UTF-8, entonces, ¿de dónde viene el error?


donde en apache cual directorio?

Respuestas:


19

Se refiere a Encabezados de respuesta y no al cuerpo del documento ("Etiqueta de tipo de contenido").

Si marca los Encabezados de respuesta de su página con cualquier depurador HTTP (por ejemplo, el panel Net de Firebug para Firefox, o una pestaña similar de Herramientas para desarrolladores en Google Chrome / Internet Explorer / Safari / Opera), verá esta línea:

Content-Type: text/html

Al mismo tiempo, si marca lo mismo para esta página, verá:

Content-Type: text/html; charset=utf-8

La velocidad de la página se refiere a la parte que falta. Tener el juego de caracteres correcto presente en los encabezados de hecho acelerará la representación de la página un poco . Con un juego de caracteres incorrecto especificado en el encabezado de respuesta (o ningún juego de caracteres), el navegador debe escanear / interpretar la página hasta que encuentre la declaración correcta del juego de caracteres (la <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />línea) y luego reiniciar el proceso de representación si el juego de caracteres es diferente del del navegador Configuración predeterminada.

La penalización de rendimiento no es grande en absoluto: para el usuario es imperceptible a menos que se use hardware realmente antiguo / lento (aunque difiere para cada navegador y versión de navegador). Tal vez hay otras "sanciones" que están directamente relacionadas con esto, pero personalmente no estoy al tanto de ellas.

Solución: si genera este encabezado usted mismo (en su script PHP), entonces necesita modificarlo para incluir también el juego de caracteres. Si su script no realiza tales manipulaciones de encabezado, entonces es un problema de configuración incorrecta del servidor.


Acabo de agregar header('Content-type: text/html; charset=UTF-8');. ¡Muchas gracias!
Alex

66
También puede ver los encabezados de respuesta con curl --head $url. El conjunto de caracteres predeterminado se puede especificar en Apache agregando AddDefaultCharset utf-8a un archivo de configuración como .htaccess.
Lri

+1 para una explicación clara, a menudo se preguntaba esto y se confundía. Resuelto con la adición de htaccess AddDefaultCharset
Malachi

¿No debería ser <meta charset="utf+8">suficiente?
Daniel Springer
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.