Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1926 connectés 

  FORUM HardWare.fr
  Programmation

  [html] balise méta http-equiv

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[html] balise méta http-equiv

n°21383
heffer
PDG du Site des Mains
Posté le 29-03-2001 à 18:05:49  profilanswer
 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
A quoi sert cette balise? Est-elle indispensable? Peut-elle provoquer des bugs?


---------------
Découvrez la version 2005 du  Site des Mains!! C'est la même qu'en 2004!
mood
Publicité
Posté le 29-03-2001 à 18:05:49  profilanswer
 

n°21417
heffer
PDG du Site des Mains
Posté le 29-03-2001 à 22:35:23  profilanswer
 

Une petite réponse?

n°21420
Library
Posté le 29-03-2001 à 23:03:27  profilanswer
 

a rien, c webexpert ki met ca je crois

n°21530
matafan
Posté le 30-03-2001 à 16:23:21  profilanswer
 

la balise <meta http-equiv> sert à présiser dans la page HTML des paramètres qui sont normalements indiqués au niveau HTTP. En l'occurence ta balise sert à préciser le type mime du document transporté (text/html) et sa page de caractères (iso-8859-1).

n°21543
heffer
PDG du Site des Mains
Posté le 30-03-2001 à 16:59:47  profilanswer
 

Puis-je l'enlever ou pas?

n°21546
speed18
Posté le 30-03-2001 à 17:25:39  profilanswer
 

attention, si tu l'enlève ça va faire planter ton PC, bruler ta maison et ta copine va partir...
je plaisante
c'est juste pour définir la norme
y a pas de meta indispensable.....
tu peux l'enlever, t'aura gagner une vingtaine d'octets....
on n'a pas d'sous...

n°21554
heffer
PDG du Site des Mains
Posté le 30-03-2001 à 18:41:09  profilanswer
 

Et ça peut-être à l'origine de problèmes genre IE qui bloque lors de la connexion sur la page? En fait si je demande ça, c'est parce que ya des gens qui n'arrivent pas à aller sur mon site.

n°21578
verdy_p
Posté le 30-03-2001 à 23:30:07  profilanswer
 

Le meta HTTP n'est nécessaire dans une page HTML que si le serveur Web ne sait pas quel Content-Type générer pour une page HTML: dans ce cas il peut très bien soit ne pas générer de Content-Type du tout, ou bien en générer un autre (tel que pourquoi pas "text/plain", et le navigateur client n'interpréterait pas le contenu comme du HTML et afficherait les balises au lieu de les interpréter), ou bien donner des valeurs par défaut incorrectes (par exemple le web server pourrait envoyer un content-type "text/html; charset="iso8859-1", alors que la page est encodé avec un jeu de caractères UTF-8 ou PC850, ce qui aurait pour effet soit de planter l'interprétation des balises HTML placées derrières un caractère non ASCII, soit d'afficher les mauvais accents)
 
Maintenant, par défaut, la plupart des serveurs web sont configurés pour générer automatiquement l'entête "Content-Type: text/html; charset=iso-8859-1" pour toutes les réponses à des requêtes portant sur des fichiers ayant l'extension ".htm" ou ".html" (c'est la configuration des types MIME).
 
Pour les autres cas, il y a des serveurs web qui savent lire dans la page HTML pour rechercher les <META HTTP-EQUIV> : ils les utilisent pour générer directement les bons entêtes MIME, et renvoie dans le corps de la réponse HTTP la page, qui peut au passage avoir été filtrée de ses META HTTP-EQUIV qui ne sont plus nécessaires puisqu'ils figurent dans l'entête de la réponse.
 
En principe ce genre de traitement n'est pas fait par défaut, sauf pour les pages ".shtml" qui contiennent des scripts serveurs: la page n'est passeulement lue du fichier, mais interprétée par un filtre script, qui génère les server-side includes, remplace les place-holders, et peut compacter le contenu envoyé au client, le filtre pouvant aussi générer des entêtes MIME supplémentaires (par exemple générer des "ETag" de sessions)
 
En dépit de tout ça, un bon navigateur ne plantera pas avec cet entête encore présent dans le corps de lapage envoyé au client: la norme HTML prescrit que la présence du META HTTP-EQUIV dans l'entête de la page (et uniquement dans ce cas là: le meta doit être placé dans la section <HEAD>, sinon il sera ignoré dans la section <BODY>, ou si <HEAD> ou <HTML> sont absents), sera prioritaire sur tout autre entête MIME généré par le serveur web.
 
Cela signifie qu'en l'absence de configuration spéciale du serveur web (qui génère par défaut un "Content-Type: text/html" sans préciser de charset, et indique au navigateur d'utiliser son charset par défaut), la balise META permet de forcer le navigateur dans un autre charset (il ignorera l'entête généré par défaut par le serveur web, et prendra celui indiqué dans la page).
 
Attention dans ce cas: la balise META doit être placée à un endroit où cela ne pose pas de problème au navigateur. Si on place la balise <META HTTP-EQUIV> après le <TITLE> et si le <TITLE> ne peut pas être interprété correctement avec le bon charset sans le <META>, il est possible que le META qui vient ensuite ne permette pas au navigateur de changer l'interprétation du <TITLE> qu'il a déjà en mémoire. D'autres navigateurs dans ce cas s'en sortent en essayant de relire la page dans son cache pour réinterpréter son contenu.
 
Netscape lui préfère redemander la page au serveur car il se rend compte de son erreur d'interprétation trop tard, et son cache n'est pas complet pour qu'il puisse l'utiliser: le serveur voit la session de réponse abandonnée et une seconde requête à la même page (lors du premier accès au serveur, sinon s'il a déjà une interprétation d'une autre page, il la garde et ne cherche pas à corriger, car cela pose problème avec les pages dynamiques des formulaires: c'est un bogue).
 
Aussi les <META HTTP-EQUIV> doivent de préférence être placés le plus haut possible dans la page, juste après <HEAD>, et avant <TITLE>, si cela altère l'interprétation correcte du texte comme <TITLE>, ou de la langue (en l'absence d'attribut lang= dans les balises qui précède le META en HTML 4.01). C'est à cause de ces problèmes que maintenant les bons serveurs Web filtrent les balises META HTTP-EQUIV des pages HTML avant leur envoi, afin que cela ne pose jamais de problème à l'agent client.
 
Pour HTML 4.01, le charset par défaut (s'il n'y a rien dans l'entête MIME généré par le serveur, ou dans un META du document), est normalement iso-8859-1 (pour des raisons de compatibilité avec les versions précédentes du langage HTML).

 

[edit]--Message édité par verdy_p--[/edit]

n°21582
heffer
PDG du Site des Mains
Posté le 31-03-2001 à 00:15:07  profilanswer
 

Merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [html] balise méta http-equiv

 

Sujets relatifs
Perl et HTML[HTML] Un petit renseignement sur les cookies svp !
[EMAIL] plain text / html[PHP]Ca marche la variable HTTP_ACCEPT_LANGUAGE sous IE5.5/win2000??
passage de paramètres en JSP & HTML[HTML] Pourquoi ça marche pas avec Netscape
[HTML] problème d'ascenceur[HTML]pb img qui s'affiche pas avec feuille de style
HTML saut de page pour l'imprimante[HTML] Question simple .. Aidez moi svp :-)
Plus de sujets relatifs à : [html] balise méta http-equiv


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR