Я думал, что должен отправить "text/xml", но затем я считал, что должен послать "заявление". Это имеет значение? Кто-то может объяснить различие?
Разница между text / xml и application / xml - это кодировка символов по умолчанию, если параметр charset не указан:
Text / xml и application / xml ведут себя по-разному, когда кодировка параметр не указан явно. Если кодировка по умолчанию (т. Е. US-ASCII) для текста / xml по какой-то причине неудобен (например, плохой веб серверов), application / xml предоставляет альтернативу (см. «Необязательно параметры »регистрации application / xml в разделе 3.2).
Для text / xml :
Соответствует [RFC2046], если объект text / xml получен с параметр charset опущен, процессоры MIME и процессоры XML ДОЛЖЕН использовать кодировку по умолчанию us-ascii [ASCII]. В случаях где объект XML MIME передается через HTTP, по умолчанию значение кодировки по-прежнему "us-ascii".
Для application / xml :
Если получен объект application / xml, где кодировка параметр опущен, информация о charset заголовком MIME Content-Type. Соответствие XML процессоры ДОЛЖНЫ соответствовать требованиям раздела 4.3.3 [XML] которые непосредственно касаются этой непредвиденной ситуации.Однако процессоры MIME которые не являются процессорами XML, НЕ ДОЛЖНЫ принимать кодировку по умолчанию, если параметр charset не указывается в объекте application / xml.
Таким образом, если параметр charset опущен, кодировка символов text / xml будет US-ASCII, а с application / xml кодировка символов может быть указано в самом документе.
Сейчас в Интернете есть эмпирическое правило: «Будьте строги с выходными данными, но терпимыми к входным». Это означает, что при передаче данных через Интернет необходимо максимально соответствовать стандартам. Но встроите некоторые механизмы, чтобы не замечать ошибки или угадывать при получении и интерпретации данных через Интернет.
Поэтому в вашем случае просто выберите один из двух типов (я рекомендую application / xml ) и убедитесь, что правильно указали используемую кодировку символов (я рекомендую использовать соответствующую кодировку символов по умолчанию, чтобы не рисковать , поэтому в случае application / xml используйте UTF-8 или UTF-16).
В качестве эмпирического правила, наиболее безопасным для того, чтобы ваш документ правильно воспринимался всеми веб-серверами, прокси и клиентскими браузерами, вероятно, является следующее:
С точки зрения спецификации RFC 3023, которую некоторые браузеры не реализуют должным образом, основное различие в типах содержимого заключается в том, как клиенты должны относиться к кодировке символов, следующим образом:
Для application/xml, application/xml-dtd, application/xml-external-parsed-entity или любого из подтипов application/xml, таких как application/atom+xml, application/rss+xml или application/rdf+xml, кодировка символов определяется в следующем порядке:
Для text/xml, text/xml-external-parsed-entity или подтипа типа text/foo+xml атрибут encoding объявления XML в документе игнорируется, и кодировкой символов является:
Большинство парсеров не реализуют эту спецификацию; они игнорируют HTTP Context-Type и просто используют кодировку в документе. С таким количеством неправильно сформированных документов это вряд ли изменится в ближайшее время.
text / xml предназначен для документов, которые будут иметь смысл для человека, если будут представлены в виде текста без дальнейшей обработки, application / xml - для всего остального.
Каждый объект XML подходит для использования с носителем application / xml набрать без доработок. Но при этом не используется тот факт, что Во многих случаях XML можно рассматривать как простой текст. Пользовательские агенты MIME (и пользовательские веб-агенты), которые не имеют явной поддержки application / xml будет рассматривать его как application / octet-stream, для например, предложив сохранить его в файл.
Чтобы указать, что объект XML должен обрабатываться как простой текст по умолчанию используйте медиа-тип text / xml. Это ограничивает кодировку используется в XML-сущности для тех, которые совместимы с требования к типам текстовых носителей, как описано в [RFC-2045] и [RFC-2046], например UTF-8, но не UTF-16 (кроме HTTP).
оба в порядке.
text / xxx означает, что в случае, если программа не понимает xxx, имеет смысл показать файл пользователю как обычный текст. application / xxx означает, что показывать его бессмысленно.
Обратите внимание, что эти типы содержимого были изначально определены для вложений электронной почты, прежде чем они были позже использованы в веб-мире.