À l'exception du document html, actuellement tous les fichiers (css, javascript et images) servis depuis mon serveur web ne spécifient pas le content-type
dans l'en-tête de réponse http. Il m'arrive de le remarquer car j'ai l'intention de supprimer l' type
attribut dans ma script
balise et ma link
balise, mais je suis tombé sur cette réponse qui dit ce qui suit:
Le type MIME est également envoyé via l'en-tête HTTP Content-Type, donc l'utilisation de type = "text / css" ne serait que des octets supplémentaires.
css
javascript
http-headers
Débordement de question
la source
la source
Content-Type
tête pour ces fichiers? Si vous consultez la réponse des fichiers servis depuis le cache de votre navigateur, vous ne verrez probablement pas d'en-Content-Type
tête.304 not modified
fichier. Pas exactement le cache, mais le type de contenu est supprimé de l'en-tête. Désactiver le cache, tout redevient normal.Réponses:
Oui . Par le protocole HTTP, clause 7.2.1 :
Alors oui, les en-têtes de réponse doivent contenir un en-
Content-Type
tête pour toutes les données de réponse (appelé «entité-corps» dans le protocole, souvent «fichier» en langage commun). S'il est omis, le navigateur est autorisé à faire ses propres suppositions sur le type de données qu'il a obtenues. Dans de nombreux contextes, le risque de suppositions erronées est négligeable, mais ce n'est pas une bonne excuse pour violer le protocole.Des attributs comme
type=text/css
ettype=text/javascript
n'ont pas été nécessaires, sauf par certaines spécifications formelles, voire utiles. Même si un serveur envoie par exemple incorrectement des données CSS sansContent-Type
, les navigateurs traiteront les données comme CSS si<link rel=stylesheet ...>
c'est l'élément qui a provoqué la demande. C'est l'rel
attribut qui compte dans ce cas.la source