META
De acuerdo con la especificación de HTML 4, los elementos META
se utilizan para especificar información sobre el propio documento (de ahí su nombre). La sintaxis del elemento META
es la siguiente:
<meta name="nombre-propiedad" content="valor-propiedad" scheme="esquema-datos" lang="idioma" dir="dirección-del-texto">
o bien:
<meta http-equiv="nombre-encabezado-http" content="valor-encabezado">
Los elementos META
forman parte del contenido del elemento HEAD
del documento.
Por ejemplo:
<meta name="Author" content="Pedro Villar Martos" lang="es">
content
está en español.<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
text/html
, y la codificación de caracteres utilizada es la ISO-8859-1.META
especificados con http-equiv
HTTP es el protocolo de la Web. Es decir, es el protocolo de red (algo así como las normas) según las cuales se transmiten los recursos de la World Wide Web entre las aplicaciones que acceden a la Web. Estos recursos pueden ser documentos HTML, imágenes, ficheros de música, etc.
La comunicación tiene lugar a través del envío de mensajes. El cliente (normalmente un navegador) envía un mensaje de petición al servidor, y éste devuelve un mensaje de respuesta, que normalmente contiene el recurso requerido por el cliente. La estructura de estos mensajes es la siguiente:
En el caso de un mensaje de petición, la línea inicial tiene la siguente estructura: método identificador-del-recurso versión-de-HTTP
. Por ejemplo:
GET /index.html HTTP/1.1
Esto significa "Soy compatible con la versión 1.1; dame el fichero index.html del directorio raíz".
En el caso de un mensaje de respuesta, la línea inicial (Status Line) tiene la siguiente estructura: version-de-HTTP código-de-estado-de-respuesta frase-explicativa
. Por ejemplo:
HTTP/1.1 200 OK
El código 200 significa que la petición se ha servido con éxito. Otros códigos típicos son el 404 (el recurso pedido no existe), o el 500 (error inesperado en el servidor). La lista completa de códigos se puede encontrar en la especificación del protocolo.
Las líneas de encabezado dan información sobre el mensaje o sobre el objeto contenido en el cuerpo del mensaje. Cada encabezado, que ocupa una línea, tiene la estructura Nombre-del-encabezado: valor
. HTTP 1.0 define 16 encabezados, y HTTP 1.1 define 46. Los dos encabezados principales en los mensajes de respuesta son Server:
, que identifica el programa utilizado como servidor, y Last-Modified:
, que da la fecha de la última modificación del recurso servido (hora GMT), y que es útil para las cachés (para ahorrar consumo de ancho de banda). Por ejemplo:
Server: Apache/1.3.12 (Unix)
Last-Modified: Sat, 16 Jun 2001 23:15:08 GMT
Los encabezados que pueden ofrecer alguna utilidad desde el punto de vista del administrador de la página web son los siguientes:
Expires:
Expires: Sat, 30 Jun 2001 12:00:00 GMT
Pragma:
no-cache
. Permite a un cliente refrescar la copia que tiene en su caché cuando sabe que ésta es incorrecta o anticuada. Es decir, un valor no-cache
no significa que el recurso no pueda ser almacenado en caché. Para controlar el almacenamiento debe usarse el encabezado Expires:
o las directrices de control de caché definidas en HTTP 1.1.Content-Type:
Content-Type: text/html; charset=ISO-8859-1
Content-Language:
Content-Language: es-ES
indica que la audiencia a la que se dirige el recurso son los hablantes españoles del castellano. Los códigos de idioma están definidos por el IANA. Véase la información de la especificación de HTML 4.01 sobre códigos de idioma.Accept-Language:
(cuyo valor puede estar determinado por ejemplo por las preferencias del usuario) para servir el documento más apropiado. También puede ser utilizado por los motores de búsqueda para categorizar los recursos por idiomas.Cache-Control
max-age=segundos
Expires:
, pero el tiempo de caducidad, especificado en segundos, se cuenta a partir del momento en que se realiza la petición del recurso, por lo que ofrece mayor flexibilidad.s-maxage=segundos
max-age
, pero sólo se aplica a cachés proxy.public
no-cache
public
), o para servir siempre documentos actualizados sin sacrificar las ventajas de las cachés.must-revalidate
proxy-revalidate
must-revalidate
, pero sólo se aplica a cachés proxy.Cache-Control: max-age=3600, must-revalidate
Existen otros encabezados de respuesta no definidos por HTTP pero que tienen cierta utilidad.
Refresh:
<meta http-equiv="Refresh" content="3;URL=http://www.algunsitio.com/nuevo.html">
, indica al navegador que cargue la página especificada al cabo de tres segundos. Nunca debería emplearse un tiempo de cero segundos, porque puede estropear la funcionalidad de algunos navegadores.META Refresh
.Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure
META
:<meta http-equiv="Set-Cookie" content="cookievalue=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure">
expires
) el "cookie" se queda en el disco duro hasta que llega esa fecha, momento en el cual se borra; si no se especifica la fecha, el "cookie" se borra en cuanto se cierra el navegador.PICS-Label:
<META http-equiv="PICS-Label" content='(PICS-1.1 "http://www.gcf.org/v2.5" labels on "1994.11.05T08:15-0500" until "1995.12.31T23:59-0000" for "http://w3.org/PICS/Overview.html" ratings (suds 0.5 density 0 color/hue 1))'>
META
correspondiente que se colocará en la propia página. Uno de estos servicios gratuitos es el generador de etiquetas PICS de Vancouver-Webpages.Content-Script-Type:
Content-Script-Type: text/javascript
Content-Style-Type:
style
pero que no definan un lenguaje de hojas de estilo por defecto son incorrectos.Content-Style-Type: text/css
META
Existen dos maneras de enviar los encabezados de respuesta HTTP. La primera forma, que es la más segura y la que debería elegirse siempre que sea posible, consiste en enviar los encabezados junto con el resto del mensaje de respuesta, antes del cuerpo del mensaje. Esto se puede conseguir configurando el servidor (por ejemplo, en el caso de Apache, a través del fichero .htaccess) o mediante scripts de servidor (cgi, php, asp, etc.).
La segunda forma, en general menos recomendable, consiste en incluir los encabezados en el propio documento, mediante la utilización del elemento META
con el atributo http-equiv
especificado.
Así, mientras que los encabezados Content-Script-Type
y Content-Style-Type
se especifican normalmente con un elemento META
, existen otros que pueden no tener el efecto esperado si se declaran de este modo.
En particular, cuando se emplean elementos META http-equiv
:
Expires
, Pragma
, Cache-Control
), serán normalmente ignorados por las cachés proxy.Cache-Control
tendrá efectos indeterminados en los navegadores.Content-Type
) puede provocar problemas.Por ello, en general, siempre que sea posible conviene especificar los encabezados junto con el resto de encabezados del mensaje de respuesta HTTP.
Las excepciones son la ya mencionada de Refresh
, y los encabezados Content-Script-Type
y Content-Style-Type
, para los cuales una declaración META
tiene prioridad sobre un encabezado de respuesta (cuando normalmente ocurre lo contrario).
META
especificados con name
Aunque no existe ninguna especificación que defina los valores posibles para el atributo name
, existe cierto número de ellos que son ampliamente entendidos (description
, keywords
, robots
...) y otros que son entendidos por agentes de usuario en particular. De ellos los que más nos interesan son los primeros.
A continuación vemos una lista de los más utilizados.
Description
<meta name="description" contents="Este documento trata sobre los elementos META (metatags). Explica la diferencia entre los elementos que especifican el atributo http-equiv y el atributo name, y hace un repaso de los más utilizados." lang="es">
Keywords
<meta name="keywords" contents="metatags,meta name,meta http-equiv">
Copyright
<meta name="copyright" content="© 2001, Juan R. Pozo" lang="es">
Robots
INDEX
, NOINDEX
, FOLLOW
, NOFOLLOW
. Además, ALL
equivale a INDEX
, FOLLOW
y NONE
equivale a NOINDEX
, NOFOLLOW
. Por ejemplo:
<meta name="robots" content="NOINDEX, NOFOLLOW">
<meta name="robots" content="NOINDEX, FOLLOW">
<meta name="robots" content="ALL">
NOINDEX
NOFOLLOW
NOIMAGEINDEX
NOIMAGECLICK
NOARCHIVE
para evitar que la página sea almacenada en la caché del buscador.robots.txt
. Se puede encontrar más información en www.robotstxt.org.Dublin Core
<meta name="DC.Title" content="HTML con Clase - Metadatos">
<meta name="DC.Creator" content="Juan Ramón Pozo">
<meta name="DC.Subject" content="Metadatos">
<meta name="DC.Description" content="Los elementos META de HTML: tipos, funciones, etc.">
<meta name="DC.Publisher" content="ConClase.net">
<meta name="DC.Date" content="2001-06-16">
<meta name="DC.Type" scheme="DCMIType" content="Text">
<meta name="DC.Format.Medium" content="text/html">
<meta name="DC.Relation.isPartOf" content="http://www.conclase.net/">
<meta name="DC.Identifier" content="http://html.conclase.net/articulos/metadatos">
<meta name="DC.Language" content="es">
<meta name="DC.Rights" content="(c) 2001 by Juan R. Pozo. All rights reserved.">
Hemos intentado que toda la información ofrecida sea lo más fiable posible. En caso de error u omisión os agradeceríamos que os pusierais en contacto con nosotros.
Podéis encontrar más información en los siguientes sitios:
META
más completo.© 2001-2003 Juan R. Pozo