Какое значение Content-Type следует отправлять в XML-карту сайта?

StackOverflow https://stackoverflow.com/questions/3272534

Вопрос

Я думал, что мне следует отправить «text/xml», но потом я прочитал, что мне следует отправить «application/xml».Это имеет значение?Может кто-нибудь объяснить разницу?

Это было полезно?

Решение

А разница между текст/xml и приложение/xml это кодировка символов по умолчанию, если кодировка параметр опущен:

Text/XML и приложение/XML ведут себя по -разному, когда параметр charset явно не указан.Если charset по умолчанию (то есть US-ASCII) для Text/XML по какой-то причине неудобен (например, плохие веб-серверы), приложение/XML предоставляет альтернативу (см. «Необходимые параметры» приложения/XML Регистрации в разделе 3.2).

Для текст/xml:

Соответственно с [RFC2046], если объект текста/XML получен с опущенным параметром ChARSET, процессоры MIME и процессоры XML должны использовать значение Charset по умолчанию «US-ASCII» [ASCII].В тех случаях, когда предприятие XML MIME передается через HTTP, значение Charset по умолчанию по-прежнему является «US-ASCII».

Для приложение/xml:

Если приложение/XML-объект получена, когда параметр Charset опущен, информация о Charset в заголовке типа контента MIME.Соответствующие процессоры XML должны следовать требованиям в разделе 4.3.3 [XML], которые напрямую касаются этого непредвиденного обстоятельства.Тем не менее, процессоры MIME, которые не являются процессорами XML, не должны предполагать charset по умолчанию, если параметр charset опущен из объекта приложения/XML.

Итак, если кодировка параметр опущен, кодировка символов текст/xml является US-ASCII, а с приложение/xml кодировку символов можно указать в самом документе.

Сейчас в Интернете действуют следующие правила:«Будьте строгим с выходом, но будьте терпимы с входом». Это означает, что при доставке данных через Интернет как можно больше соответствовать стандартам.Но встройте некоторые механизмы, чтобы игнорировать ошибки или гадать при получении и интерпретации данных через Интернет.

Поэтому в вашем случае просто выберите один из двух типов (рекомендую приложение/xml) и обязательно правильно укажите используемую кодировку символов (в целях безопасности я рекомендую использовать соответствующую кодировку символов по умолчанию, поэтому в случае приложение/xml используйте UTF-8 или UTF-16).

Другие советы

Как правило, самая безопасная ставка на создание вашего документа правильно обрабатываться всеми веб-серверами, прокси и браузерами клиента, вероятно, является следующим:

  1. Используйте тип содержимого приложения / XML
  2. включают в себя кодировку символов в типе содержимого, вероятно, UTF-8
  3. включают соответствующий символьный кодировку в атрибуте кодирования самого документа XML.
  4. в терминах RFC 3023 Spec, который некоторые браузеры не могут реализовывать должным образом, основные Разница в типах содержания находится в том, как предполагаются клиенты для лечения кодирования символов, следующим образом:

    Для приложения / XML, приложения / XML-DTD, приложение / XML-внешний анализ-объект или любой из подтипов приложения / XML, таких как приложение / атом + XML, приложение / RSS + XML или приложение / RDF + XML, кодировка символов определяется в этом порядке:

    1. Кодировка, указанная в параметре Charset в HTTP-заголовка HTTP Content-типа
    2. Кодировка, приведенная в атрибуте кодирования XML-объявления в документе,
    3. utf-8.
    4. Для текста / XML, текстовый / XML-внешний анализ-объект или подтип, как Text / foo + XML, атрибут кодирования XML-объявления в документе игнорируется, а кодировка символов:

      1. кодировка, указанная в параметре Charset заголовка HTTP-файла типа Content, или
      2. us-ascii.
      3. Большинство парсеров не реализуют спецификацию; Они игнорируют тип контекста HTTP и просто используйте кодировку в документе. С таким количеством неконформированных документов там вряд ли скоро меня изменится.

оба в порядке.

Текст / ххх означает, что в случае, если программа не понимает xxx, имеет смысл отображать файл пользователю как простой текст.Приложение / XXX означает, что это бессмысленно показывать это.

Обратите внимание, что эти типы контента были первоначально определены для вложения электронной почты, прежде чем они позже позже используются в веб-стране.

Text / XML предназначен для документов, которые были бы значимы для человека, если они представлены в виде текста без дальнейшей обработки, приложение / XML для всего остального

Каждый XML-объект подходит для использования с приложением / XML-носителями Тип без модификации. Но это не использует тот факт, что XML можно рассматривать как простой текст во многих случаях. Пользовательские агенты MIME. (и веб-агенты пользователя), которые не имеют явную поддержку для Приложение / XML будет относиться к этому как приложение / октет-поток для Пример, предлагая сохранить его в файл.

, чтобы указать, что объект XML следует рассматривать как простой текст По умолчанию используйте тип Media Text / XML. Это ограничивает кодировку используется в объекте XML для тех, которые совместимы с Требования к типы текстовых носителей, как описано в [RFC-2045] и [RFC-2046], E.g., UTF-8, но не UTF-16 (кроме http).

- http://www.ietf.org/rfc/rfc2376.txt

Другие ответы здесь касаются общего вопроса о том, что правильно Content-Type для ответа XML и сделать вывод (как и в случае В чем разница между текстом/xml и приложением/xml для ответа веб-сервиса), что оба text/xml и application/xml допустимы.Однако ни в одном из них не рассматривается вопрос о том, существуют ли какие-либо правила, специфичные для карты сайта.

Отвечать:нет.Спецификация карты сайта https://www.sitemaps.org, и с помощью Google site: поиска вы можете подтвердить, что он не содержит слов или фраз мим, мимтип, Тип содержимого, приложение/xml, или текст/xml в любом месте.Другими словами, совершенно умалчивается на тему того, что Content-Type следует использовать для обслуживания файлов Sitemap.

Ввиду отсутствия каких-либо комментариев в спецификации карты сайта, непосредственно касающихся этого вопроса, мы можем с уверенностью предположить, что применяются те же правила, что и при выборе Content-Type любого другого XML-документа, т.е.что это может быть либо text/xml или application/xml.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top