Avertissements : content-type' header charset value should be utf-8 en débug

contenu head html5

a marqué ce sujet comme résolu.

Bonjour à toutes et tous,

je dispose de pages HTML5 avec ce type d’entête.

<!DOCTYPE html>
<html lang="fr">
<head>

    <meta charset="utf-8">
    <title>Version 21.06 12/06/2021</title>
	<meta name="viewport" content="width=device-width, initial-scale=1">

    <script src="script/Param_Url.js"></script>

    <link rel="stylesheet" type="text/css" href="css/index_styles.css" />

...

Tant est test en Local que depuis des serveurs installés sur le PC - UwAmp et / ou laragon - en mode Débug avec Edge j’ai des anomalies "réseau" :

Content-Type: text/html Ouvrir dans Réseau

Content-Type: text/javascript Ouvrir dans Réseau

Content-Type: text/css Ouvrir dans Réseau

Ai-je raté quelque chose dans le codage HTML5 ?

Je ne maitrise pas un serveur et j’ai du mal à comprendre la raison donc la solution à appliquer indiquée en "Lectures Complémentaires" à ce lien :

Lectures Complémentaires

Je présume que c’est un paramètre à préciser sur un "vrai" serveur donc des messages debug qui ne devraient pas figurer en test de développement local…

Merci par avance

Bien Cordialement

+0 -0

Je ne sais pas pourquoi tu dis que Edge est en erreur (je ne l’utilise pas et ne peux pas vérifier) ; mais la première correspond bien à ta page web

Content-Type: text/html

En suivant les liens, il semble que la quatrième ligne vide lui pose souci : la balise <meta> indiquant l’encodage devrait venir juste après le <head> wtf?

La seconde est déclenchée par la balise <script> et ça correspond bien

Content-Type: text/javascript

Sur la page que tu as indiqué, il est bien dit que ces retours sont conformes aux normes
Mais ça peut (devrait ?) être amélioré en faisant la déclaration ainsi

<script type="text/javascript" src="script/Param_Url.js"></script>

Sans indication d’encodage, la norme dit que le navigateur devrait utiliser celle de la page, et donc ici qu’on poursuit en UTF-8 : préciser n’est utile que si on a le fichier encodé différemment de la page HTML l’appelant.

La troisième est déclenchée par la balise <link> et correspond bien

Content-Type: text/css

Cette déclaration est tout à fait comme il faut (il y a les attributs rel et type aussi.)
Même remarque sur l’encodage. Je pense que ce sont aussi des faux positifs ou une répercussion en cascade de la première fausse détection.

+0 -0

Bonjour,

Un grand merci d’avoir pris le temps d’examiner cette problématique.

Visiblement le développement reste toujours la science de la modestie !

Intervenant sur des développement HTML - CSS - Javascript codé en UTF-8 depuis belle lurette je pensais type="text/javascript" obsolète. Bien vu ce rappel !

En l’état j’ai vérifié que tous les fichiers intervenant dans l’affichage html sont en UTF-8. C’était bien le cas.

J’ai alors poussé la vérification en les réencodant en UTF-8 avec BOM.

Vérifié la présence dans les 1024 premiers octets… C’est le cas.

Les avertissements étant toujours présent dans Edge j’ai créé cette page HTML par recopie d’un exemple donné dans votre lien :

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>example</title>
    </head>
    <body>Test Content</body>
</html>

L’avertissement persiste en "Problème" > "Compatibilité" : 'content-type' header charset value should be 'utf-8’.

Et même une erreur signalée mais cette dernière justifiée : A 'viewport' meta element was not specified.

Je vais faire remonter sur forum Microsoft et demander plus d’explications sur la raison de l’avertissement sur leur navigateur.

Bien Cordialement,

PS: Si réponse je la publierai sur ce post

Salut,

Tout simplement, tu ne regardes pas au bon endroit : ça n’est pas un problème de HTML, mais de header HTTP, comme le dit le message (les headers HTTP ne sont pas la même chose que le head HTML).

Tu dois donc vérifier que ton serveur HTTP (Apache, Nginx…) renvoie bien les headers Content-Type ; par exemple, la requête qui renvoie la page HTML devrait contenir : Content-Type: text/html; charset=utf-8. Ça se vérifie dans l’outil d’inspection réseau de ton navigateur.

D’autre part, tu ne devrait pas ajouter d’attribut type à ta balise <script> si celle-ci renvoie vers du JavaScript. Même remarque pour l’attribut type de ta balise <link rel="stylesheet".

Tout simplement, tu ne regardes pas au bon endroit : ça n’est pas un problème de HTML, mais de header HTTP, comme le dit le message (les headers HTTP ne sont pas la même chose que le head HTML).

Tu dois donc vérifier que ton serveur HTTP (Apache, Nginx…) renvoie bien les headers Content-Type ; par exemple, la requête qui renvoie la page HTML devrait contenir : Content-Type: text/html; charset=utf-8. Ça se vérifie dans l’outil d’inspection réseau de ton navigateur.

SpaceFox

Justement, les « original media type of the resource (prior to any content encoding applied for sending) » sont bien renvoyés. Juste Content-Type: text/html est valide …et le serveur ne devrait pas mentir sur l’encodage (si c’est connu, ou s’il y a un réencodage, pas de souci ; mais décréter que c’est du charset=utf-8 non.) Edge est en train de jouer se la jouer plus royaliste que les specs.

Même remarque pour l’attribut type de ta balise <link rel="stylesheet".

SpaceFox

Je présume que c’est lié à l’usage de rel="stylesheet" et en présumant qu’on en utilisera jamais d’autres nativement… « but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the type attribute, but is actually now recommended practice. It is also used on rel="preload" link types, to make sure the browser only downloads file types that it supports. »

+0 -0

Justement, les « original media type of the resource (prior to any content encoding applied for sending) » sont bien renvoyés. Juste Content-Type: text/html est valide …et le serveur ne devrait pas mentir sur l’encodage (si c’est connu, ou s’il y a un réencodage, pas de souci ; mais décréter que c’est du charset=utf-8 non.) Edge est en train de jouer se la jouer plus royaliste que les specs.

Gil Cot

Absolument rien dans ce sujet ne permet d’affirmer que le serveur renvoie réellement les bons Content-Type ou que Edge surinterprête les spécifications. Toute la discussion a porté sur le HTML ou l’encodage des fichiers sur le serveur, mais jamais sur la configuration du serveur HTTP et les headers qu’il renvoie. Et rien de garantit que ce serveur soit bien configuré.

En passant, UTF-8 avec BOM n’est normalement pas utilisé et posera plus de problèmes qu’autre chose, les fichiers UTF-8 ni devraient pas avoir de BOM – qui de toute façons n’est pas utile : par conception, UTF-8 n’est pas sensible à l’ordre des octets au sein d’un mot informatique, contrairement à UTF-16 ou UTF-32.

Justement, les « original media type of the resource (prior to any content encoding applied for sending) » sont bien renvoyés. Juste Content-Type: text/html est valide …et le serveur ne devrait pas mentir sur l’encodage (si c’est connu, ou s’il y a un réencodage, pas de souci ; mais décréter que c’est du charset=utf-8 non.) Edge est en train de jouer se la jouer plus royaliste que les specs.

Gil Cot

Absolument rien dans ce sujet ne permet d’affirmer que le serveur renvoie réellement les bons Content-Type

SpaceFox

Ah ? Ce n’est pas ce que j’ai compris en lisant (en plus de la mention de header dans le titre du sujet) :

Tant est test en Local que depuis des serveurs installés sur le PC - UwAmp et / ou laragon - en mode Débug avec Edge j’ai des anomalies "réseau" :

Content-Type: text/html Ouvrir dans Réseau

Cat54

Au temps pour moi si les anomalies réseaux ne sont pas liées à la communication avec le serveur.

+0 -0

Tu dois donc vérifier que ton serveur HTTP (Apache, Nginx…) renvoie bien les headers Content-Type ; par exemple, la requête qui renvoie la page HTML devrait contenir : Content-Type: text/html; charset=utf-8. Ça se vérifie dans l’outil d’inspection réseau de ton navigateur.

Hormis "Problème" > "Compatibilité" : 'content-type' header charset value should be 'utf-8’.

Content-Type: text/html Ouvrir dans Réseau

Et sur clic sur Réseau voici ce qui figure dans l’outil d’inspection réseau de Edge en "En tête" (fichier local sur PC) :

Code HTML test index.html (Utf-8) valide censé ne pas déclencher d’anomalie … (en lang "fr" au lieu de "en" pour ne pas polluer Edge avec une boite de demande de traduction fr) :

<!doctype html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>example</title>
    </head>
    <body>Test Content</body>
</html>

URL de la demande: file:///D:/_Test/index.html

Méthode de demande: GET

Code d’état: 200 OK

Stratégie de référent: strict-origin-when-cross-origin

Content-Type: text/html

Last-Modified: Sun, 22 Jan 2023 19:16:47 GMT

En-têtes provisoires sont affichées.

En savoir plus

sec-ch-ua: "Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"

sec-ch-ua-mobile: ?0

sec-ch-ua-platform: "Windows"

Si cela peut vous être utile…

+0 -0

Avec UwAmp toujours 'content-type' header charset value should be 'utf-8’ dont voici le résultat réseau en HTTP :

URL de la demande: http://localhost/index.htm

Méthode de demande: GET

Code d’état: 200 OK

Adresse distante: [::1]:80

Stratégie de référent: strict-origin-when-cross-origin

Accept-Ranges: bytes

Connection: Keep-Alive

Content-Length: 165

Content-Type: text/html

Date: Sun, 22 Jan 2023 19:53:38 GMT

ETag: "a5–5f2df1fb8d522"

Keep-Alive: timeout=5, max=100

Last-Modified: Sun, 22 Jan 2023 19:16:47 GMT

Server: Apache/2.4.18 (Win32) OpenSSL/1.0.2f PHP/5.6.18

Accept:

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9

Accept-Encoding: gzip, deflate, br

Accept-Language: fr,fr-FR;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6

Connection: keep-alive

Host: localhost

Referer: http://localhost/

sec-ch-ua: "Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"

sec-ch-ua-mobile: ?0

sec-ch-ua-platform: "Windows"

Sec-Fetch-Dest: document

Sec-Fetch-Mode: navigate

Sec-Fetch-Site: same-origin

Sec-Fetch-User: ?1

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.61

Constat avec Edge remonté le 23/01/2023 avec un fichier index.htm contenant le code HTML5 minimal test (Utf-8) valide censé ne pas déclencher d’anomalie :

*Thanks for your feedback about Microsoft Edge Hi,

We’re always trying to get better, and we can’t do it without you.

Just as a reminder, on Jan 23, 2023, you told us: Bonjour, Edge en mode debug F12 Avertissement systématique : 'content-type' header charset value[…]

We’ll keep you posted on our progress.

Thanks for helping us build a better Microsoft Edge!

The Microsoft Edge Team *

A suivre …

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte