Теоретически, согласно RFC 4329, application/javascript
.
Причина, по которой он должен быть application
, не имеет ничего общего с тем, является ли тип читаемым или исполняемым. Это потому, что существуют специальные механизмы определения кодировки, заложенные самим языком / типом, а не просто общим параметром charset
. Подтип text
должен быть способен транскодироваться прокси-сервером в другую кодировку, изменяя параметр charset. Это не относится к JavaScript, потому что:
а. RFC говорит, что пользовательские агенты должны выполнять анализ спецификации сценария для определения типа (хотя я не уверен, действительно ли это делают какие-либо браузеры);
б. браузеры используют другую информацию - включая кодировку страницы и в некоторых браузерах атрибут script charset
- для определения кодировки. Таким образом, любой прокси, который попытается перекодировать ресурс, сломает его пользователей. (Конечно, на самом деле никто никогда не использует прокси-серверы для транскодирования, но это было намерением.)
Поэтому точные байты файла должны быть сохранены точно, что делает его двоичным application
типом, а не технически символьным text
.
По той же причине application/xml
официально предпочтительнее text/xml
: XML имеет свои собственные механизмы сигнализации внутриполосной кодировки. И все игнорируют application
и XML.
text/javascript
и text/xml
могут не быть официальными правильными вещами, но есть то, что все используют сегодня по соображениям совместимости, и причины, по которым они не подходят, практически не имеют значения.
person
bobince
schedule
04.11.2010