• ベストアンサー

ヘッダでのContent-Typeの指定は不要?

windwos2000,apache2.0.55でいろいろとテストしていたのですが、 apacheに対してhtmlファイルをリクエストすると、そのレスポンスでapacheが Content-Type: text/htmlをhttpヘッダに自動でつけてくれているようなのです。 (telnetでapacheへ接続してGETリクエストを送ってその応答で確かめました。) ということは、htmlファイルの<head>セクションで <meta http-equiv="Content-Type" Content="text/html"> を指定しなくてもよいということになるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

ユーザーエージェント (情報を受け取る方のプログラム) にとっては、HTML ファイル内の meta 要素に Content-Type が示されているというのはあまり意味がありません。というのも、それが HTML 文書であるということが分からなければそもそも meta 要素すら解釈できないからです。つまり、Content-Type 情報は HTTP ヘッダに含めないと実質的には意味がないということです。 ただ、HTTP ヘッダにしろ meta 要素にしろ、値に文字コードの情報を含めておいたほうがベターです (文字化けを防ぐために)。例えば、 Content-Type: text/html;charset=Shift_JIS

tochanx
質問者

補足

回答ありがとうございますm_ _m ということはhtmlファイルの<head>セクションでContent-Type: text/html を指定することは必須ではない、ということでよいのですね。 ところで、文字化けを防ぐために文字コードを指定した方がよいとのことですが、 これは <meta http-equiv="Content-Type" Content="text/html; charset=shift-jis"> と必ずしなければならないのでしょうか? 例えばtext/htmlを抜かしてcharsetだけを指定するということは不可能なのでしょうか? <meta http-equiv="Content-Type" Content="charset="shift-jis"> としてしまってはまずいのでしょうか?

その他の回答 (1)

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

> ~~必須ではない、ということでよいのですね。 はい、そうです。 > <meta http-equiv="Content-Type" Content="charset="shift-jis"> としてしまってはまずいのでしょうか? それは、まずいです。 Content-Type の値はこの場合 text/html の部分がメインで、charset=Shift_JIS の部分は付加的な情報という位置付けになっているので、メインの部分を抜かしてしまうわけには行きません。 ところで、「shift」と「jis」の間にある記号は「-」ではなくて「_」です。

tochanx
質問者

お礼

補足ありがとうございました。 あわわ、euc-jpとごっちゃになってしまいました。shift_jisですね。指摘ありがとうございます。

関連するQ&A