Какое значение Content-Type следует отправлять в XML-карту сайта?
-
17-09-2020 - |
Вопрос
Я думал, что мне следует отправить «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).
Другие советы
Как правило, самая безопасная ставка на создание вашего документа правильно обрабатываться всеми веб-серверами, прокси и браузерами клиента, вероятно, является следующим:
- Используйте тип содержимого приложения / XML
- включают в себя кодировку символов в типе содержимого, вероятно, UTF-8
- включают соответствующий символьный кодировку в атрибуте кодирования самого документа XML.
- Кодировка, указанная в параметре Charset в HTTP-заголовка HTTP Content-типа
- Кодировка, приведенная в атрибуте кодирования XML-объявления в документе,
- utf-8.
- кодировка, указанная в параметре Charset заголовка HTTP-файла типа Content, или
- us-ascii.
в терминах RFC 3023 Spec, который некоторые браузеры не могут реализовывать должным образом, основные Разница в типах содержания находится в том, как предполагаются клиенты для лечения кодирования символов, следующим образом:
Для приложения / XML, приложения / XML-DTD, приложение / XML-внешний анализ-объект или любой из подтипов приложения / XML, таких как приложение / атом + XML, приложение / RSS + XML или приложение / RDF + XML, кодировка символов определяется в этом порядке:
Для текста / XML, текстовый / XML-внешний анализ-объект или подтип, как Text / foo + XML, атрибут кодирования XML-объявления в документе игнорируется, а кодировка символов:
Большинство парсеров не реализуют спецификацию; Они игнорируют тип контекста 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).
Другие ответы здесь касаются общего вопроса о том, что правильно 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
.