HTML

Content-Type

MIMEタイプの重要性

 通常、皆さんが作成する (X)HTMLデータは、シリアライズされたデータになりますが、必ずしもブラウザがその通りに解釈するわけではありません。

 サーバが返信するデータは、(X)HTMLファイルの中身と同じものですが、そのデータが送信される前に HTTPレスポンスヘッダが返信されます。その中に、Content-Typeというヘッダがありますが、ここに何がセットされるかによって、ブラウザで解釈されるシリアライゼーションの種類が決定されます。その種類を表すのが MIMEタイプと呼ばれる値です。これによって、そのデータが HTMLなのか XHTMLなのかが区別されることになります。

 したがって、シリアライゼーションの種類に一致した MIMEタイプを Content-Typeにセットしなければいけません。ブラウザに HTMLシリアライゼーションとして解釈させる場合には text/htmlを、ブラウザに XML(XHTML)シリアライゼーションとして解釈させる場合には、application/xhtml+xmlをセットしなければいけません。

サーバ側の適切な設定が必要

 XHTML1.0では、Content-Typeに text/htmlを使うことが認められていました。しかし、HTML5では認められません。もし XML(XHTML)シリアライゼーションとしてサイトを構築する場合には、前述の通りに、適切な MIMEタイプを設定する必要があります。

 ただし、通常、ほとんどのウェブ・サーバでは、拡張子が .hmtl であれば、text/htmlが Content-Typeにセットされます。そのため、もし、拡張子が .html のファイルを XML(XHTML)シリアライゼーションとしてブラウザに解釈させたい場合は、サーバー側で設定が必要となります。

 もしご利用のサーバで .htaccess が利用できるのであれば、.htaccess に次の 1行を記述してサーバにアップロードします。


AddType "application/xhtml+xml; charset=utf-8" .html

こうすることで、拡張子が .html のファイルは、すべて XML(XHTML)シリアライゼーションとしてブラウザに解釈されることになります。