• ベストアンサー

ヘッダでの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"> を指定しなくてもよいということになるのでしょうか?

  • HTML
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • 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

  • Content-Typeの大文字

    すいません、素朴な疑問です。 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> での「Content-Type」や「Shift_JIS」の大文字はこうしなければいけないのでしょうか。 前から疑問に思っていたのですが、小文字にしてもこれといって不具合もでないようですし、人に聞いても「別に小文字でもいいと思うが慣習では?」「それは大文字にしたほうがいい」とそれぞれ言うのですが、明確な理由が出てきません。 調べてもmetaの説明をしているだけで大文字について言及している所は分かりませんでした。 <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> の「Content-Script-Type」「Content-Style-Type」もそうなんですが、理由があるのでしょうか。 そんなもの深く考えずに大文字にしておけばいいじゃん(笑)とも思いますが、 単純に分かりやすいように一文字目を大文字にしているだけなのでしょうか。それならそれでスッキリするのですが。何か明確な根拠があるのかもとも思いまして。 その辺、詳しい方からお教えいただけるとありがたく思います。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • <meta http-equiv="Content-Type" content="text/html">

    は <meta http-equiv="content-type" content="text/html"> としてもよいのでしょうか? つまり "Content-Type" はすべて小文字でも大文字でもいいのでしょうか?

    • ベストアンサー
    • HTML
  • ヘッダー情報について

     アップロードはするつもりはないのですがWEBページ作成の練習をしています。デスクトップにhome.htmlというファイルを作ってソースを見てみると…ヘッダーに以下の文字列が勝手に入っていました。 <HEAD> <META http-equiv=Content-Type content="text/html; charset=shift_jis"> <META content="MSHTML 6.00.2900.2722" name=GENERATOR></HEAD> これはどういう意味なのでしょうか?

  • perl CGIでのhttpヘッダー出力 (Content-type:

    perl CGIでのhttpヘッダー出力 (Content-type: text/html\n\n) が不要な場合について perlでCGIを作成しています。 多くの場合は、httpのヘッダー出力(Content-type: text/html\n\)を行っています。 毎回ではないですが、HTTPヘッダーの出力が不要な場合が存在します。 (HTMLにContent-type: text/html\n\が出力され表示されます。) そこで、HTTPヘッダーの出力が不要の場合の判断方法を教えていただければと思います。 よろしくお願いいたします。

  • content-lengthをヘッダで出力するには

    content-lengthで1バイトというヘッダを追加したいのですが書式が分からないので教えてください。 <% Response.AddHeader "ContentType", "text/plain" Response.Write "a" Response.End %>

  • html,css初心者です。ヘッダーの余白について

    ヘッダーの余白について教えて下さい。 どうしてもヘッダーの上部分に余白ができてしまいます。 HTMLとCSSをはります。 bodyに色をつけるとヘッダー上部分の余白の色も色がついてしまうので困っています・・・ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <link rel="stylesheet" href="font.css" type="text/css"> </head> <body> <div id="header"><!--/ #header --> あいうえお </div> </body> <html> CSS #header{ width: 980px; margin: 0 auto; background: #fff; text-align: left; } 宜しくお願いします。

    • ベストアンサー
    • HTML
  • ホームページのヘッダ部分について

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="JA"> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="CONTENT-STYLE-TYPE" CONTENT="text/css"> <META HTTP-EQUIV="CONTENT-SCRIPT-TYPE" CONTENT="text/javascript"> <TITLE>○○○○</TITLE> <LINK REL="STYLESHEET" TYPE="text/css" HREF="css1.css"> <meta name="keywords" content="△,△,△,△,,△,△,"> <meta name="description" content="●●●●●"> </HEAD> <BODY> … となっているのですが、無駄な部分はありますか? 順番などは合ってますか? また、こうしたほうがいい、などとアドバイスがあればぜひよろしくお願いいたします。

  • HTTPヘッダー制御について

    現在、vue、laravelを使って開発をしています。 基本的なことになりますが2つ質問があります。 よろしくお願いします。 ① 例えば、リクエストヘッダに、 『Content-Type:text/plain; charset=UTF-8』があった場合、 laravelが、『受け取ったのは「テキストでUTF-8」だな』と判断しているのでしょうか。 ② 例えば、レスポンスヘッダに、 『Content-Type:text/plain; charset=UTF-8』があった場合、 ブラウザ、もしくはaxios(js?)が、『受け取ったのは「テキストでUTF-8」だな』と判断しているのでしょうか。

    • 締切済み
    • PHP
  • モジュールを使ってリクエストヘッダーの表示をさせたい

    宜しくお願いします。 ウェブサーバーにリクエストを送った際、 リクエストヘッダ レスポンスヘッダとあると思うんですけど、 レスポンスヘッダは下記の形で表示できるのですが、 リクエストの際のヘッダ情報(HOST:やReferer:など)を表示させる事ができません。 どなたか、モジュールを使った形でリクエストヘッダを表示させるプログラム記述をご教授願えませんでしょうか。 ※下記は実際にテストを行っているリクエストヘッダとレスポンスヘッダとソースを表示する記述例です。(レスポンスヘッダは正常に表示できているとおもうのですが・・。) #!/usr/bin/perl use HTTP::Request::Common qw(POST GET); use LWP::UserAgent; use HTTP::Cookies; my $ua = LWP::UserAgent->new; my $req = $ua->request(HTTP::Request->new(GET => "http://localhost/")); print "Content-type: text/html\n\n"; print $req3->headers_as_string([$endl]);#これを追加し表示される情報はリファレンスっぽくなってしまうのと、 #リクエストヘッダのHOST:やReferer:UserAgentなどの情報が入ってないので、 #モジュールを利用してリクエストヘッダを表示させてみたいです。 print $req->as_string; リクエストヘッダーのイメージは下記のような情報だと思うのですが、モジュールを使って表示させる事はできないでしょうか どなた様かご教授の程宜しくお願い致します。 HTTP/1.1 Accept: */* Referer: http://okwave.jp/search.php3 Accept-Language: ja User-Agent: Mozilla/4.0 (compatible ; MSIE 6.0; Windows NT 5.0) Host: okwave.jp Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=Shift_JIS

    • ベストアンサー
    • Perl
  • http GETに混入されるこのデータは何でしょうか

    他に適切なカテゴリがみつからなかったのでこちらで質問させていただきます。 WinXP & cmd & telnet telnetを使ってアクセスしてみています。 具体的には以下のコマンドをうっています。 telnet host 80 -f logfile.txt 画面が切り替わり GET / HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Connection: close Host: host Referer: http略 Accept: */* logfile.txtを参照して分かるレスポンスは以下の通りです。 HTTP/1.1 200 OK Date: Tue, 01 Sep 2009 07:16:47 GMT Server: Apache X-Powered-By: ModLayout/3.2.1 Cache-Control: no-cache Connection: close Transfer-Encoding: chunked Content-Type: text/html 5c6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or g/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> <meta http-equiv="content-style-type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <link rel="STYLESHEET" href="st.css" type="text/css"> 気になるのがヘッダとデータの間に5c6というデータが混入されているようなのですがこれはなんでしょうか?javaで別のサーバーにソケット通信を行った際にも、ところどころ似たようなデータが混入されていてデータがうまく処理できませんでした。 もうちょっと下の方にもこのようなデータが出力されています。 </div> 2a3 <div id="page"><!-- ヘッダー --> <div id="head"> 2a3、これはオリジナルにはないデータのようなのですが・・一体・・。何かご存知の方いらっしゃいましたらよろしくお願いいたします。

専門家に質問してみよう