Page 1 of 1

XHTML의 헤더에 대해

Posted: 2006 01 07 04:41 36
by yser
웹서버에서 처음 웹페이지를 뿌려줄 때 본문 이전에 헤더를 날려주는데, 이때의 Content-type 값에 대한 질문입니다.

XHTML 1.1부터 application/xhtml+xml을 적용하여야 하는 줄 알았으나, '웹 표준 기반 홈페이지 구축 가이드 2004'를 읽어보니 XHTML 1.0이라고 되어 있군요. 이전에 현석님 블로그에서 관련 글을 읽었지만 정확히 이해할 수 없어서 글 씁니다.

1. XHTML 1.0부터 application/xhtml+xml을 적용해야 하는 것인지?

2. xhtml 문서 내부에는 meta 요소의 Content-type은 여전히 text/html로 기록하고, '웹서버에서 출력하는' Content-type을 application/xhtml+xml로 해야 하는 건지요? 외국 사이트를 돌아다녀봐도 meta 요소는 text/html 이더군요. 즉 웹서버에서(또는 프로그램 자체에서 헤더 함수를 통해서)만 출력하면 되는 건지요?

3. 그리고 저 헤더값을 날려줄 경우 그 문서는 xml로 인식될텐데, 이 때 xml 문법에 안맞는 코드가 들어가면 브라우저 내장된 xml 파서 에러 화면이 뜨는 것이 정상적인 것인지 알고 싶습니다.

파일 확장자는는 뭐가 맞죠?

Posted: 2006 01 07 11:11 38
by 사용자
확장자를 .html로 해야되요, .xhtml로 해야되요?

w3.org는 신기하게도 파일명이 안 보이게 해 놨네요.

Re: 파일 확장자는는 뭐가 맞죠?

Posted: 2006 01 07 13:08 49
by CN
사용자 wrote:확장자를 .html로 해야되요, .xhtml로 해야되요?

w3.org는 신기하게도 파일명이 안 보이게 해 놨네요.
다들 html으로 쓰고 있습니다. 아마도 xhtml이 인식 안될겁니다.

Re: XHTML의 헤더에 대해

Posted: 2006 01 08 12:15 42
by hyeonseok
저보다는 다른 분들이 답변을 하는게 맞겠지만...그래도 아는데 까지만 :)
yser wrote:1. XHTML 1.0부터 application/xhtml+xml을 적용해야 하는 것인지?
네, 그렇지만 appendix에 보면 XHTML 1.0은 text/html이 허용됩니다. 하지만 XHTML1.1은 application/xhtml+xml이어야만 합니다. 문제는 브라우져 호화성인데 많은 수의 브라우져가 아직 application/xhtml+xml을 인식을 못하기 때문에 현실적으로 XHTML1.1보다는 XHTML 1.0을 사용하는 것이 맞습니다.
yser wrote:2. xhtml 문서 내부에는 meta 요소의 Content-type은 여전히 text/html로 기록하고, '웹서버에서 출력하는' Content-type을 application/xhtml+xml로 해야 하는 건지요? 외국 사이트를 돌아다녀봐도 meta 요소는 text/html 이더군요. 즉 웹서버에서(또는 프로그램 자체에서 헤더 함수를 통해서)만 출력하면 되는 건지요?
이것은 1번과 같이 전적으로 브라우져 호환성 때문에 그렇습니다. 제대로 하게 된다면 http헤더와 meta의 선언이 같아야 하겠지요.
yser wrote:3. 그리고 저 헤더값을 날려줄 경우 그 문서는 xml로 인식될텐데, 이 때 xml 문법에 안맞는 코드가 들어가면 브라우저 내장된 xml 파서 에러 화면이 뜨는 것이 정상적인 것인지 알고 싶습니다.
문법이 잘못되면 에러가 발생해야 하는 것이 정상입니다. 에러가 나지 않는 것은 html, css만 그렇죠. xhtml은 에러가 나야만 합니다.

이 문제는 전적으로 브라우져 호환성과 관련이 있습니다. xhtml에서 application/xhtml+xml을 사용하는 것이 맞지만 그렇게 하면 firefox외의 브라우져로 사이트 방문하는 사람은 사이트를 이용할 수 없게 될 것입니다.

제가 이 부분을 이해하는데 있어서 도움이 많이 되었던 글입니다.
http://webstandardsgroup.org/features/tommy-olsson.cfm

이 사람의 블로그인 http://www.autisticcuckoo.net/ 가 application/xhtml+xml로 배포되고 있습니다.

Re: XHTML의 헤더에 대해

Posted: 2006 01 08 12:26 20
by 빛알갱이
yser wrote:웹서버에서 처음 웹페이지를 뿌려줄 때 본문 이전에 헤더를 날려주는데, 이때의 Content-type 값에 대한 질문입니다.

XHTML 1.1부터 application/xhtml+xml을 적용하여야 하는 줄 알았으나, '웹 표준 기반 홈페이지 구축 가이드 2004'를 읽어보니 XHTML 1.0이라고 되어 있군요. 이전에 현석님 블로그에서 관련 글을 읽었지만 정확히 이해할 수 없어서 글 씁니다.

1. XHTML 1.0부터 application/xhtml+xml을 적용해야 하는 것인지?
HTML-compatible한 XHTML 1.0에 대해서는 'text/html'을 써도 됩니다.

http://www.w3.org/TR/xhtml-media-types/
http://www.xml.com/pub/a/2003/03/19/dive-into-xml.html

최근에 IE 7 blog에서 IE7에서도 application/xhtml+xml을 지원하지 않겠다고 했으니까 (꼭 나쁜 소식은 아닙니다. XHTML을 XML로 취급하는데 필요한 기능을 IE7이 아직 채 갖추고 있지 않기 때문이랍니다. 그런 기능을 구현한 후에 지원하겠다는 뜻으로 해석 가능), 아마도 위에 인용한 xml.com의 문서에서 설명한 방법을 쓰셔야 할 듯..

2. xhtml 문서 내부에는 meta 요소의 Content-type은 여전히 text/html로 기록하고, '웹서버에서 출력하는' Content-type을 application/xhtml+xml로 해야 하는 건지요? 외국 사이트를 돌아다녀봐도 meta 요소는 text/html 이더군요. 즉 웹서버에서(또는 프로그램 자체에서 헤더 함수를 통해서)만 출력하면 되는 건지요?
원칙적으로 http meta는 서버를 통해 제공되는 문서의 경우에는 의미가 없으므로 (http header가 우선)... 아마도 외국 사이트들에서 그렇게 한 것은 IE 등이 application/xhtml+xml을 지원하지 않기 때문이 아닐까요...


3. 그리고 저 헤더값을 날려줄 경우 그 문서는 xml로 인식될텐데, 이 때 xml 문법에 안맞는 코드가 들어가면 브라우저 내장된 xml 파서 에러 화면이 뜨는 것이 정상적인 것인지 알고 싶습니다.
Mozilla는 그 경우 굉장히 엄격해서 에러 메시지를 내죠? 그게 잘 하는 것 같은데요. html이야 '대강 썼지만', XML은 그렇게 하지 않도록 되어 있으니까요.