これらのヘッダの違いは何ですか?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
どれが一番良いのか、そしてその理由は?
それらが同一であると言わないでください - それらが同一であるならば、それらのうちの3つはなかったでしょう。私は両方の仕事を知っています - しかし私はその違いを知りたいのです。
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
を認識するのに十分現代的なものです。
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
RFC 4329によると、JavaScriptの正しいMIMEタイプはapplication/javascript
であるべきです。しかし、古いIEバージョンは、text/javascript
を期待しているのでこれを悩ませます。
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
展開されているスクリプトメディアの種類と互換性
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は実験的なものであり、使用しないでください。