XML 사이트 맵에 어떤 콘텐츠 유형 값을 보내야합니까?


128

"text / xml"을 보내야한다고 생각했지만 "application / xml"을 보내야한다는 것을 읽었습니다. 그게 그렇게 중요한 건가? 누군가 차이점을 설명 할 수 있습니까?

답변:


160

charset 매개 변수가 생략 된 경우 text / xmlapplication / xml차이점 은 기본 문자 인코딩 입니다.

charset 매개 변수가 명시 적으로 지정되지 않은 경우 Text / xml 및 application / xml은 다르게 작동합니다. text / xml의 기본 문자셋 (예 : US-ASCII)이 어떤 이유로 불편한 경우 (예 : 잘못된 웹 서버) application / xml은 대안을 제공합니다 (3.2 절의 application / xml 등록의 "선택적 매개 변수"참조).

들어 텍스트 / XML :

[RFC2046]에 따라 문자셋 매개 변수를 생략하고 text / xml 엔티티를 수신하면 MIME 프로세서와 XML 프로세서는 기본 문자셋 값 "us-ascii"[ASCII]를 사용해야합니다. XML MIME 엔터티가 HTTP를 통해 전송되는 경우 기본 문자 집합 값은 여전히 ​​"us-ascii"입니다.

대한 응용 프로그램 / XML :

charset 매개 변수가 생략 된 application / xml 엔티티가 수신되면 MIME Content-Type 헤더에 의해 charset에 대한 정보가 제공되지 않습니다. 적합한 XML 프로세서는 이러한 우발성을 직접 다루는 [XML] 4.3.3 섹션의 요구 사항을 따라야합니다. 그러나 XML 프로세서가 아닌 MIME 프로세서는 charset 매개 변수가 application / xml 엔터티에서 생략 된 경우 기본 charset을 가정해서는 안됩니다.

따라서 문자 집합 매개 변수를 생략하면 text / xml 의 문자 인코딩 은 US-ASCII이고 application / xml의 경우 문자 인코딩을 문서 자체에서 지정할 수 있습니다.

이제 인터넷에서 경험할 수있는 규칙은“출력에는 엄격하지만 입력에는 견딜 수 있어야합니다”입니다. 즉, 인터넷을 통해 데이터를 전달할 때 가능한 한 표준을 충족해야합니다. 그러나 인터넷을 통해 데이터를 수신하고 해석 할 때 오류를 간과하거나 추측 할 수있는 메커니즘을 구축하십시오.

따라서 귀하의 경우 두 가지 유형 중 하나를 선택하고 ( application / xml 권장 ) 사용한 문자 인코딩을 올바르게 지정하십시오 ( 응용 프로그램 / xml 사용의 경우 안전을 위해 각각의 기본 문자 인코딩을 사용하는 것이 좋습니다) UTF-8 또는 UTF-16).


24

일반적으로 모든 웹 서버, 프록시 및 클라이언트 브라우저가 문서를 올바르게 처리하도록하는 가장 안전한 방법은 다음과 같습니다.

  1. application / xml 컨텐츠 유형 사용
  2. 컨텐츠 유형에 문자 인코딩을 포함하십시오 (예 : UTF-8)
  3. XML 문서 자체의 인코딩 속성에 일치하는 문자 인코딩을 포함하십시오.

의 측면에서 RFC 3023 일부 브라우저에서는 제대로 구현하지 사양, 컨텐츠 유형의 주요 차이점은 클라이언트가 다음과 같이 문자 인코딩을 치료하는 가정하는 방법이다 :

application / xml, application / xml-dtd, application / xml-external-parsed-entity 또는 application / atom + xml, application / rss + xml 또는 application / rdf + xml과 같은 application / xml의 하위 유형 중 하나 문자 인코딩은 다음 순서로 결정됩니다.

  1. Content-Type HTTP 헤더의 캐릭터 세트 파라미터로 지정된 인코딩
  2. 문서 내에서 XML 선언의 인코딩 속성에 제공된 인코딩
  3. utf-8.

text / xml, text / xml-external-parsed-entity 또는 text / foo + xml과 같은 하위 유형의 경우 문서 내 XML 선언의 인코딩 속성은 무시되며 문자 인코딩은 다음과 같습니다.

  1. Content-Type HTTP 헤더의 charset 매개 변수에 제공된 인코딩 또는
  2. us-ascii.

대부분의 파서는 사양을 구현하지 않습니다. HTTP Context-Type을 무시하고 문서의 인코딩 만 사용하십시오. 잘못된 형식의 문서가 너무 많아서 곧 변경 될 것 같지 않습니다.


9

둘 다 괜찮습니다.

text / xxx는 프로그램이 xxx를 이해하지 못하는 경우 파일을 일반 텍스트로 사용자에게 표시하는 것이 의미가 있음을 의미합니다. application / xxx는 그것을 표시하는 것이 의미가 없음을 의미합니다.

이러한 컨텐츠 유형은 나중에 웹 세계에서 사용되기 전에 전자 우편 첨부 파일에 대해 원래 정의되었습니다.


6

text / xml은 추가 처리없이 텍스트로 표시 될 경우 사람에게 의미가있는 문서를위한 것이며 application / xml은 다른 모든 것을위한 것입니다.

모든 XML 엔터티는 수정없이 application / xml 미디어 유형과 함께 사용하기에 적합합니다. 그러나 이것은 XML이 많은 경우에 일반 텍스트로 취급 될 수 있다는 사실을 이용하지 않습니다. application / xml을 명시 적으로 지원하지 않는 MIME 사용자 에이전트 (및 웹 사용자 에이전트)는 예를 들어 파일에 저장하도록 제안함으로써이를 응용 프로그램 / 옥텟 스트림으로 취급합니다.

XML 엔티티가 기본적으로 일반 텍스트로 처리되어야 함을 표시하려면 text / xml 매체 유형을 사용하십시오. 이는 XML 엔터티에 사용되는 인코딩을 [RFC-2045] 및 [RFC-2046]에 설명 된대로 UTF-8이 아닌 [RFC-2045] 및 [RFC-2046]에 설명 된 텍스트 미디어 유형의 요구 사항과 호환되는 인코딩으로 제한합니다 ( HTTP).

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


여전히 선호하는 HTML MIME 형식이 text/html선호되고 XHTML MIME 형식이 선호되는 것은 재미 application/xhtml+xml있습니다.
zneak

1
실제로는 아닙니다. text/html아주 오랫동안 주변에 있었고, 그것을 바꾸는 데 약간 늦었습니다.
Quentin

1

다른 답변은 여기에 적절한 무엇의 일반적인 문제 해결 Content-TypeXML 응답에 대한이, 그리고 결론 (와 같은 웹 서비스 응답에 대한 응용 프로그램 / XML 대 텍스트 / XML의 차이는 무엇 모두 있음) text/xml및이 application/xml허용됩니다. 그러나 sitemaps에 특정한 규칙이 있는지 여부는 다루지 않습니다 .

답 : 없습니다. 사이트 맵 사양은 https://www.sitemaps.org 이며 Google site:검색을 사용 하면 mime , mimetype , content-type , application / xml 또는 text / xml 이라는 단어 나 문구가 어디에도 포함되어 있지 않은지 확인할 수 있습니다. 다시 말해, Content-Type사이트 맵을 제공하는 데 사용해야 하는 주제에 대해서는 전적으로 침묵합니다 .

사이트 맵 스펙이 직접이 문제를 해결하는 어떤 논평이없는 경우, 우리는 안전하게 동일한 규칙이를 선택하는 경우와 같이 적용된다는 것을 가정 할 수있다 Content-Type즉,이 중 하나가 될 수 있음 - 다른 XML 문서의 text/xmlapplication/xml.

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