Mit Ausnahme des HTML-Dokuments geben derzeit alle Dateien (CSS, Javascript und Bilder), die von meinem Webserver bereitgestellt werden, nicht content-type
im HTTP-Antwortheader an. Ich bemerke dies zufällig, als ich beabsichtige, das type
Attribut sowohl in meinem script
Tag als auch in meinem Tag zu entfernen, bin link
aber auf diese Antwort gestoßen, die Folgendes besagt:
Der MIME-Typ wird auch über den HTTP-Content-Type-Header gesendet, sodass die Verwendung von type = "text / css" nur zusätzliche Bytes bedeuten würde.
css
javascript
http-headers
Fragenüberlauf
quelle
quelle
Content-Type
Header für diese Dateien sendet ? Wenn Sie die Antwort von Dateien anzeigen, die aus Ihrem Browser-Cache bereitgestellt werden, wird wahrscheinlich keinContent-Type
Header angezeigt .304 not modified
Datei stammt. Nicht genau der Cache, aber der Inhaltstyp wird aus dem Header entfernt. Wenn Sie den Cache deaktivieren, wird alles wieder normal angezeigt.Antworten:
Ja . Nach dem HTTP-Protokoll, Abschnitt 7.2.1 :
Ja, die Antwortheader sollten einen
Content-Type
Header für alle Antwortdaten enthalten (im Protokoll als "Entity-Body" bezeichnet, häufig als "Datei" in der gemeinsamen Sprache). Wenn es weggelassen wird, kann der Browser seine eigenen wilden Vermutungen über die Art der Daten anstellen, die er erhalten hat. In vielen Zusammenhängen ist das Risiko falscher Vermutungen vernachlässigbar, aber dies ist keine gute Entschuldigung für einen Verstoß gegen das Protokoll.Attribute wie
type=text/css
undtype=text/javascript
waren nicht notwendig, außer durch einige formale Spezifikationen oder sogar nützlich. Selbst wenn ein Server z. B. CSS-Daten falsch sendetContent-Type
, behandeln Browser die Daten als CSS, wenn dies<link rel=stylesheet ...>
das Element war, das die Anforderung verursacht hat.rel
In diesem Fall kommt es auf das Attribut an.quelle