내 XML 사이트맵에 대해 어떤 Content-Type 값을 보내야 합니까?
-
17-09-2020 - |
문제
"text/xml"을 보내야 한다고 생각했는데 "application/xml"을 보내야 한다는 내용을 읽었습니다.그게 그렇게 중요한 건가?누군가 차이점을 설명할 수 있나요?
해결책
그만큼 사이의 차이 텍스트/xml 그리고 애플리케이션/xml 다음과 같은 경우 기본 문자 인코딩입니다. 문자셋 매개변수가 생략되었습니다.
charset 매개 변수를 명시 적으로 지정하지 않으면 텍스트/xml 및 application/xml이 다르게 행동합니다.텍스트/XML의 기본 charset (예 : US-ASCII)이 어떤 이유로 든 불편한 경우 (예 : 웹 서버) 응용 프로그램/XML은 대안을 제공합니다 (섹션 3.2의 응용 프로그램/XML 등록의 "선택적 매개 변수"참조).
을 위한 텍스트/xml:
rfc2046]에 따라 charset 매개 변수가 생략 된 텍스트/xml 엔티티가 수신되면 MIME 프로세서 및 XML 프로세서는 "uscii"의 기본 숯 값을 사용해야합니다.XML MIME 엔티티가 HTTP를 통해 전송되는 경우, 기본 숯불 값은 여전히 "us-ASCII"입니다.
을 위한 애플리케이션/xml:
charset 매개 변수가 생략되는 곳에 응용 프로그램/xml 엔티티가 수신되면 MIME 컨텐츠 유형 헤더에 의해 숯에 대한 정보가 제공되지 않습니다.XML 프로세서를 준수해야합니다.그러나 XML 프로세서가 아닌 MIME 프로세서는 Application/XML 엔티티에서 charset 매개 변수를 생략 한 경우 기본 숯불을 가정해서는 안됩니다.
그렇다면 만약 문자셋 매개변수가 생략된 경우 문자 인코딩은 텍스트/xml US-ASCII이고 애플리케이션/xml 문자 인코딩은 문서 자체에서 지정할 수 있습니다.
이제 인터넷의 경험 법칙은 다음과 같습니다."출력에 엄격하지만 입력에 견딜 수 있습니다." 즉, 인터넷을 통해 데이터를 전달할 때 가능한 한 표준을 충족시켜야합니다.그러나 인터넷을 통해 데이터를 수신하고 해석할 때 결함을 간과하거나 추측할 수 있는 몇 가지 메커니즘을 구축하세요.
따라서 귀하의 경우 두 가지 유형 중 하나를 선택하십시오. 애플리케이션/xml) 사용된 문자 인코딩을 올바르게 지정했는지 확인하세요(안전한 플레이를 위해 해당 기본 문자 인코딩을 사용하는 것이 좋습니다. 애플리케이션/xml UTF-8 또는 UTF-16을 사용하세요).
다른 팁
엄지 손가락의 규칙으로서, 문서를 모든 웹 서버, 프록시 및 클라이언트 브라우저에서 제대로 처리하기 위해 가장 안전한 내기는 다음과 같습니다.
- 응용 프로그램 / XML 콘텐츠 유형 를 사용하십시오.
- 콘텐츠 형식의 문자 인코딩, 아마도 UTF-8
- 는 XML 문서 자체의 인코딩 속성에 일치하는 문자 인코딩을 포함합니다.
- 콘텐츠 형식 HTTP 헤더의 charset 매개 변수에 주어진 인코딩
- 문서 내의 XML 선언의 인코딩 속성에 주어진 인코딩,
- UTF-8.
- 콘텐츠 형식 HTTP 헤더의 Charset 매개 변수 또는 에 주어진 인코딩
- us-ascii.
rfc 3023 rh="noreferrer"> 일부 브라우저가 제대로 구현하지 못한 사양 콘텐츠 유형의 차이는 클라이언트가 문자 인코딩을 처리하는 방법을 다음과 같이 처리하는 방법에 있습니다.
응용 프로그램 / XML, 응용 프로그램 / XML-DTD, 응용 프로그램 / XML 외부 구문 분야 또는 응용 프로그램 / Atom + XML, Application / RSS + XML 또는 응용 프로그램과 같은 응용 프로그램 / XML의 하위 유형 중 하나의 경우 RDF + XML, 문자 인코딩은이 순서로 결정됩니다.
text / xml, text / xml-external-parsed-entity 또는 text / foo + xml와 같은 하위 유형의 경우 문서 내의 XML 선언의 인코딩 속성이 무시되고 문자 인코딩은 다음과 같습니다.
대부분의 파서는 사양을 구현하지 않습니다. 그들은 HTTP 컨텍스트 유형을 무시하고 문서의 인코딩을 사용합니다. 너무 많은 아픈 형태의 서류가 있으므로 곧 변경되지 않을 것입니다.
둘 다 괜찮습니다.
text / xxx는 프로그램이 XXX를 이해하지 못하는 경우 파일을 사용자에게 일반 텍스트로 표시하는 것이 좋습니다.application / xxx는 그것을 보여주기에 무의미하다는 것을 의미합니다.
해당 콘텐츠 유형은 원래 웹 세계에서 사용되기 전에 전자 메일 첨부 파일에 대해 정의되었습니다.
text/xml은 추가 처리 없이 텍스트로 표시되면 사람에게 의미가 있는 문서를 위한 것이고, application/xml은 다른 모든 것을 위한 것입니다.
모든 XML 엔티티는 애플리케이션/xml 미디어와 함께 사용하기에 적합합니다 를 수정하지 않고 입력합니다.그러나 이것은 다음과 같은 사실을 악용하지 않습니다 XML은 많은 경우 일반 텍스트로 취급될 수 있습니다.MIME 사용자 에이전트 (및 웹 사용자 에이전트)에 대한 명시적인 지원이 없는 경우 응용 프로그램/xml은 응용 프로그램/옥텟 스트림으로 처리합니다 예를 들어 파일에 저장하도록 제안합니다.
XML 엔티티를 일반 텍스트로 처리해야 함을 나타냅니다 기본값은 텍스트/xml 미디어 유형을 사용합니다.이렇게 하면 인코딩이 제한됩니다 를 XML 엔티티에 사용되는 것과 호환되는 것으로 rFC-2045]에 설명된 텍스트 미디어 유형에 대한 요구 사항 및 [RFC-2046](예: UTF-8, UTF-16은 제외)(HTTP 제외).
기타 답변은 XML 응답을위한 적절한 Content-Type
가 무엇인지에 대한 일반적인 질문을 해결하고 (와 같이) text/xml
와 application/xml
가 모두 허용되는 텍스트 / XML vs WebService 응답 의 응용 프로그램 / XML입니다. 그러나 Sitemaps 에 특정한 규칙이 있는지 여부는 없음을 주소합니다.
답변 : 거기에 없습니다. SiteMap Spec은 https://www.sitemaps.org 및 google generacodicicetagcode 검색을 사용하여 확인할 수 있습니다. mime , mimetype , content-type , 응용 프로그램 / XML 을 포함하지 않습니다. > 텍스트 / XML 어디서나. 즉, Sitemaps를 제공하기 위해 site:
를 사용해야하는 항목의 주제에 대해 완전히 침묵합니다.
Sitemap Spec의 해설 이이 질문에 직접 처리되는 경우, 다른 XML 문서의 Content-Type
또는 Content-Type
일 수있는 것처럼 동일한 규칙이 적용될 수 있다고 가정 할 수 있습니다.