웹 서비스 응답에서 text / xml과 application / xml의 차이점은 무엇입니까?


495

이 차이에 대한 일반적인 질문의 더 text/xml하고 application/xml. 나는 웹 서비스 (REST-Jersey)를 작성하는 데 상당히 익숙합니다. 나는 application/xml그것이 배우기 위해 사용했던 대부분의 튜토리얼 / 코드 예제에서 나타나는 것이기 때문에 생산 해 왔지만 최근에 text/xml무엇이 다른지, 언제 그것을 사용할 것인지 궁금해하고 있었 application/xml습니까?


DaveV의 대답에 언급 한 바와 같이,과에서 헤더에 tools.ietf.org/html/rfc3023 , RFC 3023는 사용되지 않습니다 (현재 접수 오뎃의 대답에 의해 인용). 최신 RFC 7303은 실제로이 질문에 대한 RFC 3023과는 상당히 다른 답변을 제공합니다. 따라서 DaveV의 답변을 수락하면 최신 정보가 답변 목록의 맨 위에 유지되도록 미래 독자에게 도움이 될 것이라고 생각합니다.
Mark Amery

아래 Dave V와 Marián Černý에 따르면 새로운 것을하고 있다면 application / xml이 선호되는 것으로 보입니다.
Sql Surfer

text/인간을위한 것입니다. application/컴퓨터에 대한 의미
이안 보이드에게

답변:


108

이것은 오래된 질문이지만 RFC3023을 폐기하는 RFC 7303 에서 자주 방문하고 명확한 권장 사항을 사용할 수 있습니다 . 간단히 말해서 (섹션 9.2) :

The registration information for text/xml is in all respects the same
as that given for application/xml above (Section 9.1), except that
the "Type name" is "text".

6
인용 된 단락에는 IANA 등록 정보가 언급되어 있는데 (9.1 절을 확인하여) 인코딩도 처리하므로 application/xml와 사이의 문자 집합 처리에 더 이상 차이가 없어야합니다 text/xml. 또한, 나는 추상의이 부분을 고려 : "이 규격은 표준화 ... 응용 프로그램 / XML을 ... 별칭으로 ... 텍스트 / XML을 정의하면서 ..."라는 의미 application/xmltext/xml동일하고 전혀 선호도가 없다 다른 하나에 대해.
Marián Černý

427

RFC ( 3023 )의 섹션 3, XML 매체 유형에서 :

일반 사용자 XML 문서 (처리되지 않은 소스 XML 문서 )를 읽을 수있는 경우 text / xml 이 application / xml보다 선호됩니다. text / xml을 명시 적으로 지원하지 않는 MIME 사용자 에이전트 (및 웹 사용자 에이전트)는 XML MIME 엔터티를 일반 텍스트로 표시하여이를 텍스트 / 일반으로 처리합니다. 일반 사용자 XML MIME 엔터티 를 읽을 수없는 경우 Application / xml 이 바람직 합니다.

(강조 광산)


6
@drachenstern-비 설명 적 요소와 속성이 더 가능성이 높다고 생각합니다 ( <a1 d="" g="">예 : 일반 사용자가 읽을 수없는 것으로 간주 ).
오디드

3
@ 마이크 물론. 일부 XML 파일은 기본적으로 다음과 같은 레코드 목록입니다. msdn.microsoft.com/en-us/library/ms762271%28v=vs.85%29.aspx 응용 프로그램에서 읽고 처리 할 가능성이 높습니다. 다른 것은 기본적으로 HTML 페이지와 같이 마크 업이있는 텍스트입니다. 텍스트 / XML을 사용하면 더 적절하게 들립니다.
biziclop

5
읽을 수없는 것과 읽을 수없는 예를 제시하십시오. 우리는 등등 대부분 읽을 수 있지만 할 파일을 base64로 인코딩 된 노드가 사용
조 필립스

5
@JoePhilllips-당신은 간다. base64는 인간이 읽을 수 없습니다. 도구를 사용하지 않거나 매뉴얼을 보지 않고도 사람에게 전체 문서를 읽고 이해할 수 있다면 ( xgsf태그의 의미는 무엇입니까?), 읽을 수 있습니다.
Oded

8
@CommaToast "text / xml"이 Accept 인 경우 웹 서버는 형식화되고 들여 쓰기 된 XML을 반환 할 수 있지만 application / xml은 제거 된 모든 중요하지 않은 공백을 반환 할 수 있습니다. 예를 들어 ASP.NET MVC에서는 서로 다른 mimetype에 대해 다른 처리기를 지정할 수 있습니다.
Novaterata

33

이 기사 에 따르면 application / xml이 선호됩니다.


편집하다

나는 기사에 약간의 후속 조치를 취했다.

저자는 다음과 같이 XML 처리 명령에서 선언 된 인코딩이라고 주장합니다.

<?xml version="1.0" encoding="UTF-8"?>

text/xml용지 종류를 사용하는 경우 무시할 수 있습니다 .

RFC 2046text/*MIME 유형 패밀리 사양 의 정의 , 특히 다음 조각과 같은 논문을 지원합니다 .

4.1.2.  Charset Parameter

   A critical parameter that may be specified in the Content-Type field
   for "text/plain" data is the character set.  This is specified with a
   "charset" parameter, as in:

     Content-type: text/plain; charset=iso-8859-1

   Unlike some other parameter values, the values of the charset
   parameter are NOT case sensitive.  The default character set, which
   must be assumed in the absence of a charset parameter, is US-ASCII.

   The specification for any future subtypes of "text" must specify
   whether or not they will also utilize a "charset" parameter, and may
   possibly restrict its values as well.  For other subtypes of "text"
   than "text/plain", the semantics of the "charset" parameter should be
   defined to be identical to those specified here for "text/plain",
   i.e., the body consists entirely of characters in the given charset.
   In particular, definers of future "text" subtypes should pay close
   attention to the implications of multioctet character sets for their
   subtype definitions.

그들에 따르면, application/xmlMIME 타입을 사용할 때 이러한 어려움을 피할 수 있습니다 . 그것이 사실이든 아니든, 나는 피하지 않을 것 text/xml입니다. IMHO, 인간 가독성 (비가 독성)의 의미를 따르는 것이 가장 좋으며 항상 문자 세트를 지정해야합니다.


1
링크의 경우 +1 자신의 말로, 기사에서 도달 한 기본 결론은 무엇입니까? 어쩌면 "기사에서 파일 인코딩이 무시되어 텍스트 / xml 헤더가있는 파일에서 utf-8 및 이진 데이터를 보낼 수 없다는 의미"라고 설명되어 있습니까?
Shanimal

@Shanimal에 동의합니다. 링크는 영원히 지속되지 않을 수 있으므로 기사의 요점을 포함해야합니다. 그것의 실종은 대답을 거의 쓸모 없게 만들 것입니다. 누구든지 인코딩과 관련된 XML 처리 명령을 무시하는 것에 대한 진술을 확인할 수 있습니까?
toniedzwiedz

1
원저자에 따르면, 이것은 사양의 이후 개정에서 수정되었습니다Update: The situation has changed in the new HTTP/1.1 RFC: The default charset of ISO-8859-1 for text media types has been removed; the default is now whatever the media type definition says.
TheNorthWes

아약스와 함께 XML 파일을로드하면 유형이 "문서" application/xml이지만 입력 양식 요소를 사용하면 text/xml코드로 제대로 처리되지 않는 유형의 "파일"입니다 . 다른 형식으로 변환하려면 어떻게해야합니까?
악마의 옹호자

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.