IE 8 with headerL'équipe de développement d'IE8 nous annonce une petite fonctionnalité fort amusante dans IE 8. Mais il faut d'abord expliquer quelques points.

Quand un serveur web envoi un document (html, ou autre), il passe des informations dans l'entête du fichier, informations qui ne sont pas affichées à l'utilisateur et qui sont destinées au logiciel client. Parmi ces information, est envoyé le "content-type", le type de contenu du fichier. Il s'agit d'indiquer au logiciel client de quel type est le document envoyé qui est souvent un fichier texte.
Par exemple, un fichier html est un fichier texte. Il faut donc spécifier au navigateur que ce texte est du html grâce au content-type 'text/html'. Si je veux que mon fichier html soit affiché en tant que texte, donc, non rendu, je le spécifie comme type "text/plain".

Bon, alors ça c'est pour la théorie. C'est à dire que c'est ainsi que fonctionnent tout les navigateurs et qu'ils doivent procéder. Maintenant, occupons nous d'Internet Explorer. IE 6 et IE 7 ont l'excellente idée de se foutre royalement du content-type et d'essayer de le deviner par lui même. Si on lui envoie un fichier texte défini comme texte brut (text/plain) mais contenant du code html, IE6/7, eux, vont quand même rendre la page html. Les développeurs de IE 8 tentent de résoudre ce problème pour rentrer dans la norme. Dorénavant, IE 8 rendra ce fichier servi en tant que text/plain en texte …à condition d'avoir indiqué un autre paramètre en header : X-Content-Type-Options: nosniff !!

On est donc obligé de rajouter un header propriétaire et non standard à tous nos fichiers web pour indiquer uniquement à IE8 qu'il doit se comporter comme tout les navigateurs. C'est absolument génial, personne à part Microsoft n'aurait osé faire ça.

En pratique, on comprends qu'ils soient "obligés" de procéder de la sorte pour ne pas rendre tout les intranet incompatibles avec IE8. Ils sont piégés dans leurs propres bugs. En corrigeant ce dysfonctionnement, les entreprises seraient forcées de mettre à jour leurs intranets, qui ont été codé il y a plus de dix ans, pour le navigateur de l'époque : IE6, bourré des bugs qu'on connaît tous aujourd'hui, dont celui dont on parle dans ce billet. Si leurs pages html servies en text/plain s'affichent correctement aujourd'hui sur IE6/7, elles ne s'afficheraient plus du tout sur IE8. Et bien sur, ça serait la faute à Microsoft, donc on laisse le bug. Ben pour une fois, non !

Source : IEBlog

IE8