web-dev-qa-db-ja.com

application / x-javascriptとtext / javascriptのコンテンツタイプの違い

これらのヘッダの違いは何ですか?

Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript

どれが一番良いのか、そしてその理由は?

それらが同一であると言わないでください - それらが同一であるならば、それらのうちの3つはなかったでしょう。私は両方の仕事を知っています - しかし私はその違いを知りたいのです。

228
Obmerk Kronen

text/javascriptは時代遅れで、application/x-javascriptが標準化されるまでの移行期間中はx-は実験的(つまりapplication/javascriptプレフィックス)でした。

application/javascriptを使用する必要があります。これは RFC に記載されています。

ブラウザに関しては、違いはありません(少なくともHTTPヘッダには)。これは単なる変更であり、text/*およびapplication/* MIMEタイプグループは可能な限り一貫した意味を持ちます。 (text/* MIMEタイプは人間が読めるコンテンツを対象としています。JavaScriptは人間に直接意味を伝えるようには設計されていません)。

Script要素のtype属性でapplication/javascriptを使用すると、一部の古いブラウザでは(未知の言語であるため)スクリプトが無視されることになります。そこでtext/javascriptを引き続き使用するか、属性を完全に省略してください(これはHTML 5で許可されています)。

これはHTTPヘッダの問題ではありません(私の知る限りでは)ブラウザは普遍的にHTTPコンテンツタイプのスクリプトを完全に無視するか、application/javascriptを認識するのに十分現代的なものです。

302
Quentin

x-で始まるMIMEタイプは標準化されていません。 JavaScriptの場合、それはちょっと時代遅れです。追加の2番目のコードスニペット

<?Header('Content-Type: text/javascript');?>

short_open_tagsを有効にする必要があります。あなたはそれを避けるべきです。

<?php Header('Content-Type: text/javascript');?>

しかし、JavaScriptの完全に正しいMIMEタイプは、

application/javascript

http://www.iana.org/assignments/media-types/application/index.html

21
KingCrunch

RFC 4329によると、JavaScriptの正しいMIMEタイプはapplication/javascriptであるべきです。しかし、古いIEバージョンは、text/javascriptを期待しているのでこれを悩ませます。

8
Björn

type = "application/javascript"を使用してください

HTML5の場合、type属性は廃止されていますので、削除することができます。注:w3.orgによると、デフォルトは "text/javascript"であるため、削除するのではなく "application/javascript"を追加することをお勧めします。

http://www.w3.org/TR/html5/scripting-1.html#attr-script-type
type属性は、スクリプトの言語またはデータの形式を指定します。属性が存在する場合、その値は有効なMIMEタイプでなければなりません。 charsetパラメータを指定してはいけません。属性が存在しない場合に使用されるデフォルトは "text/javascript"です。

"text/javascript"は廃止されているので、 "application/javascript"を使用してください。

RFC 4329: http://www.rfc-editor.org/rfc/rfc4329.txt

  1. 展開されているスクリプトメディアの種類と互換性

    ECMAScriptおよびJavaScriptで書かれたプログラムにラベルを付けたり交換したりするために、さまざまな未登録のメディアタイプがその場限りで使用されています。これらが含まれます:

    + ------------------------------------------------- ---- + | text/javascript |テキスト/ ecmascript | | text/javascript1.0 | text/javascript1.1 | | text/javascript1.2 | text/javascript1.3 | | text/javascript1.4 | text/javascript1.5 | | text/jscript |テキスト/ LiveScript | | text/x-javascript | text/x-ecmascript | | application/x-javascript | application/x-ecmascript | |アプリケーション/ javascript |アプリケーション/ ecmascript | + ------------------------------------------------- ---- +

この種のコンテンツに "text"トップレベルタイプを使用することは問題があることが知られています。したがって、この文書はtext/javascriptとtext /を定義しています。
ecmascriptですが、それらは「廃止」としてマークされています。実験的な
上記の一部に記載されているように、未登録のメディアタイプは推奨されません。
メディアの種類

  * application/javascript
  * application/ecmascript

このドキュメントでも定義されているものは、一般的な使用を目的としているため、代わりに使用してください。

この資料はのための同等の処理要件を定義したものです
はtext/javascript、text/ecmascript、application/javascriptを入力します。
メディアタイプapplication/ecmascriptの使用およびサポートは
で定義されている他のメディアタイプよりも普及がかなり少ない
このドキュメント。その利点を活かして、このドキュメントでは
このタイプでは、より相互運用性を高めるためのより厳密な処理規則
処理。

x-javascriptは実験的なものであり、使用しないでください。

4
juFo