Theoretisch nach RFC 4329 , application/javascript.
Der Grund, warum es sein soll, applicationhat nichts damit zu tun, ob der Typ lesbar oder ausführbar ist. Dies liegt daran, dass es benutzerdefinierte Zeichensatzbestimmungsmechanismen gibt, die von der Sprache / dem Typ selbst festgelegt werden und nicht nur vom generischen charsetParameter. Ein Subtyp von textsollte von einem Proxy in einen anderen Zeichensatz transkodiert werden können, wobei der Zeichensatzparameter geändert wird. Dies gilt nicht für JavaScript, weil:
ein. Der RFC sagt, dass Benutzeragenten Stücklisten-Sniffing für das Skript durchführen sollten, um den Typ zu bestimmen (ich bin mir nicht sicher, ob dies tatsächlich von Browsern durchgeführt wird).
b. Browser verwenden andere Informationen - die Codierung der eingeschlossenen Seite und in einigen Browsern das script charsetAttribut -, um den Zeichensatz zu bestimmen. Jeder Proxy, der versucht hat, die Ressource zu transkodieren, würde seine Benutzer beschädigen. (Natürlich verwendet in Wirklichkeit sowieso niemand Transcodierungs-Proxys, aber das war die Absicht.)
Deshalb ist die genaue Bytes der Datei muss erhalten bleiben genau , was es zu einer binären macht applicationArt und technisch nicht zeichenbasierte text.
Aus dem gleichen Grund wird application/xmles offiziell vorgezogen text/xml: XML verfügt über eigene In-Band-Zeichensatz-Signalisierungsmechanismen. Und jeder ignoriert auch applicationXML.
text/javascriptund text/xmlvielleicht nicht das offizielle Richtige, aber es gibt das, was heute jeder aus Kompatibilitätsgründen verwendet, und die Gründe, warum sie nicht das Richtige sind, sind praktisch völlig unwichtig.