Pregunta

Pensé que debería enviar "texto/xml", pero luego leí que debería enviar "aplicación/xml".¿Importa?¿Alguien puede explicar la diferencia?

¿Fue útil?

Solución

El diferencia entre texto/xml y aplicación/xml es la codificación de caracteres predeterminada si el juego de caracteres Se omite el parámetro:

Text/XML y Application/XML se comportan de manera diferente cuando el parámetro CharSet no se especifica explícitamente.Si el charset predeterminado (es decir, US-ASCII) para Text/XML es inconveniente por algún motivo (por ejemplo, servidores web malos), la aplicación/XML proporciona una alternativa (consulte "Parámetros opcionales" de registro de aplicación/XML en la Sección 3.2).

Para texto/xml:

Conformante con [RFC2046], si se recibe una entidad de texto/XML con el parámetro Charset omitido, los procesadores MIME y los procesadores XML deben usar el valor de charset predeterminado de "US-ASCII" [ASCII].En los casos en que la entidad MIML XML se transmite a través de HTTP, el valor predeterminado de caracteres sigue siendo "US-ASCII".

Para aplicación/xml:

Si se recibe una entidad de aplicación/XML cuando se omite el parámetro Charset, el encabezado de tipo MIME no se proporciona información sobre el encabezado de tipo MIME.Los procesadores XML conformes deben seguir los requisitos en la Sección 4.3.3 de [XML] que aborden directamente esta contingencia.Sin embargo, los procesadores MIME que no son procesadores XML no deben asumir un charset predeterminado si el parámetro Charset se omite desde una entidad de aplicación/XML.

Entonces si el juego de caracteres Si se omite el parámetro, la codificación de caracteres de texto/xml es US-ASCII mientras que con aplicación/xml la codificación de caracteres se puede especificar en el propio documento.

Ahora una regla general en Internet es:"Sea estricto con la salida pero sea tolerante con la entrada". Eso significa que asegúrese de cumplir con los estándares lo más posible al entregar datos a través de Internet.Pero incorpore algunos mecanismos para pasar por alto fallas o adivinar al recibir e interpretar datos a través de Internet.

Entonces, en tu caso, elige uno de los dos tipos (recomiendo aplicación/xml) y asegúrese de especificar correctamente la codificación de caracteres utilizada (recomiendo usar la codificación de caracteres predeterminada respectiva para estar seguro, por lo que en caso de aplicación/xml utilice UTF-8 o UTF-16).

Otros consejos

Como regla general, la apuesta más segura para hacer que su documento sea tratado correctamente por todos los servidores web, los proxies y los navegadores de clientes, es probablemente lo siguiente:

  1. Usa la aplicación / Tipo de contenido XML
  2. incluye un carácter que codifica en el tipo de contenido, probablemente UTF-8
  3. incluye una codificación de carácter coincidente en el atributo de codificación del propio documento XML.
  4. En términos de la rfc 3023 Spec, que algunos navegadores no se implementan correctamente, la mayor La diferencia en los tipos de contenido está en la forma en que se supone que los clientes tratan la codificación de caracteres, de la siguiente manera:

    para aplicaciones / XML, Aplicación / XML-DTD, Aplicación / XML-LEVERSED-PERSED-PERSED, O Cualquiera de los subtipos de aplicaciones / XML, como la aplicación / Atom + XML, APLICACIÓN / RSS + XML o APLICACIÓN / RDF + XML, la codificación de caracteres se determina en este orden:

    1. la codificación dada en el parámetro de caracteres del encabezado HTTP de tipo contenido
    2. La codificación dada en el atributo de codificación de la Declaración XML dentro del documento,
    3. utf-8.
    4. Para texto / xml, texto / xml-externo-analizado, o un subtipo similar al texto / foo + xml, el atributo de codificación de la declaración XML dentro del documento se ignora, y la codificación de caracteres es:

      1. la codificación dada en el parámetro de caracteres del encabezado HTTP de tipo contenido, o
      2. US-ASCII.
      3. La mayoría de los parsistas no implementan la especificación; Ignoran el tipo de contexto HTTP y simplemente usan la codificación en el documento. Con tantos documentos mal formados por ahí, es poco probable que cambie pronto en cualquier momento.

ambos están bien.

Texto / XXX significa que en caso de que el programa no entienda xxx tiene sentido mostrar el archivo al usuario como texto sin formato.Aplicación / XXX significa que no tiene sentido mostrarlo.

Tenga en cuenta que esos tipos de contenido se definieron originalmente para el archivo adjunto de correo electrónico antes de que se usaran más tarde en Web World.

Texto / XML es para documentos que serían significativos para un humano si se presenta como texto sin procesamiento adicional, la aplicación / XML es para todo lo demás

Cada entidad XML es adecuada para su uso con la aplicación / XML Media Tipo sin modificación. Pero esto no explota el hecho de que XML se puede tratar como texto simple en muchos casos. Agentes de usuario MIME (y agentes de usuario web) que no tienen soporte explícito para Aplicación / XML lo tratará como SOLICITUD / OCTET-STROP, para Ejemplo, ofreciendo guardarlo a un archivo.

para indicar que una entidad XML debe ser tratada como texto plano por Predeterminado, use el tipo de papel de texto / XML. Esto restringe la codificación. utilizado en la entidad XML a aquellos que son compatibles con el requisitos para los tipos de medios de texto como se describe en [RFC-2045] y [RFC-2046], por ejemplo, UTF-8, pero no UTF-16 (excepto HTTP).

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

Otras respuestas aquí abordan la pregunta general de cuál es el Content-Type para una respuesta XML es, y concluir (como con ¿Cuál es la diferencia entre texto/xml y aplicación/xml para la respuesta del servicio web?) Esos dos text/xml y application/xml están permitidos.Sin embargo, ninguno aborda si existen reglas específicas para mapas del sitio.

Respuesta:no los hay.La especificación del mapa del sitio es https://www.sitemaps.org, y usando Google site: búsquedas puedes confirmar que no contiene las palabras o frases mímica, tipo de Mimica, tipo de contenido, aplicación/xml, o texto/xml en cualquier lugar.En otras palabras, guarda absoluto silencio sobre el tema de qué Content-Type debe usarse para servir mapas de sitio.

En ausencia de cualquier comentario en la especificación del mapa del sitio que aborde directamente esta pregunta, podemos asumir con seguridad que se aplican las mismas reglas que al elegir el Content-Type de cualquier otro documento XML, es decirque puede ser cualquiera text/xml o application/xml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top