XML 사이트 맵에 어떤 콘텐츠 유형 값을 보내야합니까?
"text / xml"을 보내야한다고 생각했지만 "application / xml"을 보내야한다는 것을 읽었습니다. 그게 그렇게 중요한 건가? 누군가 차이점을 설명 할 수 있습니까?
charset 매개 변수가 생략 된 경우 text / xml 과 application / 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을 가정해서는 안됩니다.
따라서 charset 매개 변수를 생략하면 text / xml 의 문자 인코딩 은 US-ASCII이고 application / xml의 경우 문자 인코딩을 문서 자체에서 지정할 수 있습니다.
이제 인터넷에서 경험할 수있는 규칙은“출력에는 엄격하지만 입력에는 견딜 수 있어야합니다”입니다. 즉, 인터넷을 통해 데이터를 전달할 때 가능한 한 표준을 충족해야합니다. 그러나 인터넷을 통해 데이터를 수신하고 해석 할 때 오류를 간과하거나 추측 할 수있는 메커니즘을 구축하십시오.
따라서 귀하의 경우 두 가지 유형 중 하나를 선택하고 ( application / xml 권장 ) 사용한 문자 인코딩을 올바르게 지정하십시오 ( 응용 프로그램 / xml 사용의 경우 안전을 위해 각각의 기본 문자 인코딩을 사용하는 것이 좋습니다) UTF-8 또는 UTF-16).
일반적으로 모든 웹 서버, 프록시 및 클라이언트 브라우저에서 문서를 올바르게 처리하기위한 가장 안전한 방법은 다음과 같습니다.
- application / xml 컨텐츠 유형 사용
- 컨텐츠 유형에 문자 인코딩을 포함하십시오 (예 : UTF-8)
- XML 문서 자체의 인코딩 속성에 일치하는 문자 인코딩을 포함하십시오.
의 측면에서 RFC 3023 일부 브라우저에서는 제대로 구현하지 사양, 컨텐츠 유형의 주요 차이점은 클라이언트가 다음과 같이 문자 인코딩을 치료하는 가정하는 방법이다 :
application / xml, application / xml-dtd, application / xml-external-parsed-entity 또는 application / atom + xml, application / rss + xml 또는 application / rdf + xml과 같은 application / xml의 하위 유형 중 하나 문자 인코딩은 다음 순서로 결정됩니다.
- Content-Type HTTP 헤더의 캐릭터 세트 파라미터로 지정된 인코딩
- 문서 내에서 XML 선언의 인코딩 속성에 제공된 인코딩
- utf-8.
text / xml, text / xml-external-parsed-entity 또는 text / foo + xml과 같은 하위 유형의 경우 문서 내 XML 선언의 인코딩 속성은 무시되며 문자 인코딩은 다음과 같습니다.
- Content-Type HTTP 헤더의 charset 매개 변수에 제공된 인코딩 또는
- us-ascii.
대부분의 파서는 사양을 구현하지 않습니다. HTTP Context-Type을 무시하고 문서의 인코딩 만 사용하십시오. 잘못된 형식의 문서가 너무 많아서 곧 변경 될 것 같지 않습니다.
둘 다 괜찮습니다.
text / xxx는 프로그램이 xxx를 이해하지 못하는 경우 파일을 일반 텍스트로 사용자에게 표시하는 것이 의미가 있음을 의미합니다. application / xxx는 그것을 표시하는 것이 의미가 없음을 의미합니다.
이러한 컨텐츠 유형은 나중에 웹 세계에서 사용되기 전에 전자 우편 첨부 파일에 대해 원래 정의되었습니다.
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
Other answers here address the general question of what the proper Content-Type
for an XML response is, and conclude (as with What's the difference between text/xml vs application/xml for webservice response) that both text/xml
and application/xml
are permissible. However, none address whether there are any rules specific to sitemaps.
Answer: there aren't. The sitemap spec is https://www.sitemaps.org, and using Google site:
searches you can confirm that it does not contain the words or phrases mime, mimetype, content-type, application/xml, or text/xml anywhere. In other words, it is entirely silent on the topic of what Content-Type
should be used for serving sitemaps.
In the absence of any commentary in the sitemap spec directly addressing this question, we can safely assume that the same rules apply as when choosing the Content-Type
of any other XML document - i.e. that it may be either text/xml
or application/xml
.
참고URL : https://stackoverflow.com/questions/3272534/what-content-type-value-should-i-send-for-my-xml-sitemap
'Programing' 카테고리의 다른 글
주석 @GetMapping과 @RequestMapping의 차이점 (method = RequestMethod.GET) (0) | 2020.07.10 |
---|---|
어떤 브랜치와 병합하길 원하는지 알려주지 말고 (0) | 2020.07.10 |
다른 어셈블리에서 두 개의 부분 클래스를 사용하여 동일한 클래스를 나타낼 수 있습니까? (0) | 2020.07.10 |
lodash에서 include 메소드를 사용하여 오브젝트가 콜렉션에 있는지 확인하려면 어떻게해야합니까? (0) | 2020.07.10 |
Mercurial 이동이 새로운 지점으로 변경 (0) | 2020.07.10 |