Foros del Web » Creando para Internet » HTML »

especificar conjunto de caracteres en las cabeceras HTTP

Estas en el tema de especificar conjunto de caracteres en las cabeceras HTTP en el foro de HTML en Foros del Web. Hola chicos el page speed me pide especificar conjunto de caracteres en las cabeceras HTTP, por mas que busco y busco no encuentro que es ...
  #1 (permalink)  
Antiguo 24/03/2012, 14:38
 
Fecha de Ingreso: marzo-2012
Mensajes: 51
Antigüedad: 12 años, 8 meses
Puntos: 5
especificar conjunto de caracteres en las cabeceras HTTP

Hola chicos el page speed me pide especificar conjunto de caracteres en las cabeceras HTTP, por mas que busco y busco no encuentro que es lo que debo hacer

¿Con esto no estaría especificado? asi es como lo tengo yo y no lo cuenta como válido.

<meta content="text/html; charset=utf-8" http-equiv="content-type">

Por otra arte también me pide esto:

Los siguientes recursos que se pueden comprimir y almacenar en caché deben tener una cabecera "Vary" con el valor "Accept-Encoding":

http://www.miweb.com/css/default.css
http://www.miweb.com/css/main.css
http://www.miweb.com/css/reset.css
http://www.miweb.com/js/custom.js
http://www.miweb.com/js/jquery-1.4.4.js
http://www.miweb.com/js/jquery.bxSlider.min.js
http://www.miweb.com/js/jquery.cookie.js
http://www.miweb.com/js/jquery.jcarousel.min.js
http://www.miweb.com/js/jquery.nivo.slider.pack.js
http://www.miweb.com/js/jquery.orbit-1.2.3.min.js
http://www.miweb.com/js/jquery.prettyPhoto.js

Que es lo que hay que hacer?

Gracias!!!
  #2 (permalink)  
Antiguo 24/03/2012, 16:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: especificar conjunto de caracteres en las cabeceras HTTP

¡buenas!
respecto a la cabecera de charset (conjunto de caracteres), no es lo mismo un META HTTP-EQUIV que una cabecera HTTP. http-equiv simula una cabecera http pero no agrega la información como parte de la comunicación http. para agregar esa información como parte del encabezado http tienes que: configurar el servidor, o agregar el encabezado mediante lenguaje de lado servidor. cada servidor tiene su forma de configuración, por lo que recomendaria que busques en el foro o en la documentación del servidor que utilizas. si estas en apache, creo que es AddDefaultCharset encoding. si no tienes la habilidad de configurar el servidor pero tienes lenguaje de servidor, entonces genera la cabecera content-type. en php se hace con la función header: header('Content-Type: text/html; charset=encoding').
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 24/03/2012, 16:33
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: especificar conjunto de caracteres en las cabeceras HTTP

Lo ideal sería hacerlo todo via .htaccess si estás usando Apache


Estos son solo ejemplos, que charset debas pasar a cada cosa depende
de tu web primero ponés el charset y después a que extensión de archivo se la querés aplicar, bien pueden ser diferentes. (por favor asegurate que tus archivos hayan sido guardados por tu editor de texto con el mismo charset que declarás en el header)
En cuanto a la compresión el método que te propongo es el más sencillo, pero como bien marcó @zerokilled, depende de la configuración de tu servidor, aunque hoy en día la mayoría de los servidores que usan Apache, tienen mod_deflate habilitado.
Si no te funciona, deberás recurriir, como ya se dijo, a php

Código Apache:
Ver original
  1. # charset
  2. AddCharset utf-8 .html
  3. AddCharset utf-8 .js
  4. AddCharset iso-8859-1 .php
  5.  
  6. # compresión
  7. <IfModule mod_deflate.c>
  8. AddOutputFilterByType DEFLATE application/xhtml+xml
  9. AddOutputFilterByType DEFLATE text/plain
  10. AddOutputFilterByType DEFLATE text/html
  11. AddOutputFilterByType DEFLATE text/xml
  12. AddOutputFilterByType DEFLATE text/css
  13. AddOutputFilterByType DEFLATE text/javascript
  14. AddOutputFilterByType DEFLATE application/xml
  15. AddOutputFilterByType DEFLATE application/xhtml+xml
  16. AddOutputFilterByType DEFLATE application/rss+xml
  17. AddOutputFilterByType DEFLATE application/javascript
  18. AddOutputFilterByType DEFLATE application/x-javascript
  19. AddOutputFilterByType DEFLATE image/jpeg
  20. </ifModule>


el archivo .htaccess, si no existiese, tenes que crearlo en la raiz del sitio

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 24/03/2012, 17:28
 
Fecha de Ingreso: marzo-2012
Mensajes: 51
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: especificar conjunto de caracteres en las cabeceras HTTP

Muchas gracias chicos lo primero que pedí me funciono perfecto pero me quedo una duda ¿como puedo chequear con el charset que fue guardado cada archivo?

me quedo así en el .htaccess

# charset
AddCharset utf-8 .html
AddCharset utf-8 .js
AddCharset utf-8 .css

lo segundo lo copie y pegue como esta y no produjo ningún resultado.

Saludos.
  #5 (permalink)  
Antiguo 24/03/2012, 19:04
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: especificar conjunto de caracteres en las cabeceras HTTP

Cita:
Iniciado por isabel021258 Ver Mensaje
Muchas gracias chicos lo primero que pedí me funciono perfecto pero me quedo una duda ¿como puedo chequear con el charset que fue guardado cada archivo?

me quedo así en el .htaccess

# charset
AddCharset utf-8 .html
AddCharset utf-8 .js
AddCharset utf-8 .css

lo segundo lo copie y pegue como esta y no produjo ningún resultado.

Saludos.
Para verificar, depende de que editor estés usando para tu html, por lo general en la barra de estado de los mismos, figura la codificación actual de los mismos.

Por lo segundo, dos cosas, el mensaje no solo se refiere a la compresión, sino también a asignarle a esos recursos un tiempo de expiración para que se cacheen correctamente
Deberías agregar a tu .htaccess lo siguiente

Código Apache:
Ver original
  1. #### Cache
  2. <IfModule mod_headers.c>
  3. # anual
  4. <FilesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf|woff|eot|svg|ttf|flv|swf)$">
  5. Header set Cache-Control "public, max-age=29030400"
  6. </FilesMatch>
  7. # mes
  8. <FilesMatch "\.(js|css|htc|xml)$">
  9. Header set Cache-Control "public, max-age=2419200"
  10. Header append Vary Accept-Encoding
  11. </FilesMatch>
  12. # semana
  13. <FilesMatch "\.(html|htm|txt|html5|phtml)$">
  14. Header set Cache-Control "max-age=604800"
  15. </FilesMatch>
  16. # no cachear
  17. <FilesMatch "\.(php|pl|cgi|spl)$">
  18. Header unset Cache-Control
  19. Header unset Expires
  20. Header unset Last-Modified
  21. FileETag None
  22. Header unset Pragma
  23. </FilesMatch>
  24. </IfModule>

Los tiempos están expresados en segundos, puedn ser modificados, pero los que puse son bastante estándar.
Sería conveniente si es posible ver una url de la página para ver que más puede estar influyendo

NOTA: siempre antes de modificar .htaccess, hacé copias de seguridad del mismo

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 14/12/2012 a las 13:34 Razón: ortografía
  #6 (permalink)  
Antiguo 25/03/2012, 15:18
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 17 años, 5 meses
Puntos: 539
Respuesta: especificar conjunto de caracteres en las cabeceras HTTP

Para las hojas de estilo no debería asignar charset, excepto si utiliza en ellas caracteres no ascii, que supongo no será su caso.

Estos archivos ya toman el charset del documento desde el que son llamados.

Un poco más de info al respecto: http://ksesocss.blogspot.com.es/2012...-extranas.html
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++
  #7 (permalink)  
Antiguo 25/03/2012, 16:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: especificar conjunto de caracteres en las cabeceras HTTP

Yo no creo que este completamente demás, el problema es a veces de los servidores, que pasan headers inapropiados.
Siguiendo la linea de tu ejemplo en el blog, de acuerdo, no encuentro sentido lo del
@charset "UTF-8";.
Los ejemplos de las respuestas del post, son genéricos a como debe realizarse la implementación de un charset determinado para un tipo de archivo determinado via .htaccess.
No es infrecuente encontrar servidores que envían iso-8859-1 a los css.
Y el caso de "content" puede considerarse el caso por antonomasia.
un css externo:
Código CSS:
Ver original
  1. p:before{
  2. content:"Ofertas de este més:";
  3. }

el resultado en el navegador:

Ofertas de este més: Juguetes
Ofertas de este més: Informática

Asumiendo desde ya que nuestro html y css han sido guardados con utf-8.
Por lo tanto, repito, no creo que este demas hacerlo, incluso como medida preventiva.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 26/03/2012, 12:41
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 17 años, 5 meses
Puntos: 539
Respuesta: especificar conjunto de caracteres en las cabeceras HTTP

Css al igual que cualquier otro lenguaje provee soluciones propias para estas circunstancias.


En css sólo hay dos posibilidades donde utilizar caracteres "extraños" al propio lenguaje: en el nombre de los selectores y en el valor de content cuando es una cadena.

Pues al igual que html tiene una solución para cuando se desconoce el destino final de un código: las "html entities", css tiene su propia codificación de esos símbolos "impropios" a él. Porque recordemos que css no procesa el contenido de content. Sólo lo muestra. Así que sólo es cuestión de codificar dichos caracteres para el lenguaje que lo va a tratar: css.

Así en el caso del ejemplo sólo es cuestión de escribir:
Código CSS:
Ver original
  1. elemento::before {content: 'Oferta del m''\00E9''s';}
y tendré la absoluta certeza de que se mostrará bien con independencia de la codificación de la/las páginas por donde pase.

Y no sólo con acentos o caracteres más o menos habituales en español. Casi cualquier símbolo, dingbats, flechas, carácter hebreo o hiragana o cherokee o... se podrá mostrar vía css sea cual sea la codificación del documento o el lenguaje del SO del usuario que lo vea.

Resumiendo todo el tocho, que sí, que se puede declarar charset por defecto en el css, pero la especificación está clara: se han concebido para su uso en hojas de estilo vinculadas y sólo es conveniente cuando el css contiene caracteres no ASCII.

Pero mejor que utilizar un charset u otro es, en los pocos casos que puedan darse, es utilizar solucciones propias de css: codificación css.
Y como nadie va a aprenderse de memoria dicha codificación hay herramientas como la que menciono aquí.
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++

Etiquetas: cabeceras, caracteres, conjunto, css, especificar, https
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:20.