2

I'm in the process of learning XHTML. If my understanding is correct, XHTML follows strict syntax. So I created this markup:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
    <head>    
        <title>XHTML page</title>
<!--    </head> -->
    <body>
        This is the body
    </body>
</html>

I've commented the ending head tag to check the strictness of XHTML. When I saved this file with .xhtml extension it showed an error. But when I saved it with .html extension browser was very forgiving and rendered the markup irrespective of the missing head tag.

So my doubt is, is it the extension(.xhtml) what makes a file actually xhtml and gives it strict syntax behavior? Shouldn't it be the DOCTYPE that determine whether its an xhtml or not?

From what I read somewhere, in HTTP, file extension doesn't really matter and its the header type that matters.

4

1 に答える 1

3

Web サーバーから提供される場合、ブラウザがドキュメントを XHTML または HTML のどちらとして扱うかを決定するのは、MIME タイプ (別名コンテンツ タイプ) です。ブラウザーは、ページが XHTML であるかどうかを判断するために DOCTYPE を使用することはありません (ただし、HTML5 より前のバリデーターは使用します)。

ファイルがブラウザによってファイル システムからローカルに読み取られる場合、実際にはファイル名拡張子を使用して、それが XHTML であるか HTML であるかが判断されます。

常にというわけではありませんが、クライアントが URL の末尾に「.xhtml」を含む URL を要求すると、ドキュメントが XHTML (例: application/xhtml+xml) MIME タイプで提供されるようにサーバーが設定されている場合があります。

于 2012-11-01T15:36:01.867 に答える