За исключением html-документа, в настоящее время все файлы (css, javascript и изображения), обслуживаемые моим веб-сервером, не указываются content-type
в заголовке ответа http. Я случайно заметил это, поскольку намеревался удалить type
атрибут и из моего script
тега, и из link
тега, но натолкнулся на ответ, который говорит следующее:
Тип MIME также отправляется через заголовок HTTP Content-Type, поэтому использование type = "text / css" будет только дополнительными байтами.
css
javascript
http-headers
Вопрос переполнен
источник
источник
Content-Type
заголовок для этих файлов? Если вы просматриваете ответ от файлов, поданных из кэша вашего браузера, вы, вероятно, не увидитеContent-Type
заголовок.304 not modified
файла. Не совсем кеш, но тип содержимого удаляется из заголовка. Отключая кеш, все снова выглядит нормально.Ответы:
Да . По протоколу HTTP, п. 7.2.1 :
Так что да, заголовки ответа должны содержать
Content-Type
заголовок для любых данных ответа (называемых в протоколе «entity-body», часто «file» на общем языке). Если он опущен, браузеру разрешается делать свои собственные дикие предположения о типе данных, которые он получил. Во многих случаях риск неправильных догадок незначителен, но это не является хорошим оправданием для нарушения протокола.Атрибуты вроде
type=text/css
иtype=text/javascript
не были необходимы, за исключением некоторых формальных спецификаций или даже полезных. Даже если сервер неправильно отправляет, например, данные CSS безContent-Type
, браузеры будут обрабатывать данные как CSS, если они<link rel=stylesheet ...>
были элементом, вызвавшим запрос. Этоrel
атрибут, который имеет значение в этом случае.источник