アプリ版:「スタンプのみでお礼する」機能のリリースについて

No.656466の質問「文字化け。」
で「サーバーの設定とは関係ありません。 」
と自身満々に回答してしまったものです。。。
(質問者の方には申し訳ない)

私はHTTPプロトコルはポート80にgetコマンドを送って
単にhtmlデータを受け取るだけだと勘違いしていたのですが
No.656466の回答にapacheのconfファイルのAddDefaultCharsetを変更することで
文字コードの判定を行えるような事を書いてあったのですが
apacheはAddDefaultCharsetをconfファイルで指定してやることで
どういった動作をしてブラウザとやりとりしているのでしょうか?
宜しくお願いします。

A 回答 (4件)

apache-2.0 から,レスポンスヘッダに charset情報を出力するようになりました.


ブラウザは,<META>タグよりも,ヘッダのcharset情報に従うことが推奨されていますが,文字化けするかどうかは,ブラウザ依存になると思います.

# 個人的には,<META>タグに従って欲しいと思いますが…

レスポンスヘッダを確認するには,telnet で80番ポートにつないで,コマンドのやりとりをしてもいいですが,w3mの-dump_headオプションなどを使うと簡単です.
    • good
    • 0
この回答へのお礼

charsetのヘッダ情報をhtmlデータとは別にブラウザが読み込むのですね。
getコマンドの後に引数をつける事でヘッダ情報を取得できました。
ご回答ありがとうございます。

お礼日時:2003/09/17 13:46

ああ。

そういう風に解釈されましたか。それは申し訳ありません。ヘッダの内容に同内容を送りつけるという意味でいました。
もちろんmetaタグに書かれたものはそのままなので、文字化けしているページをブラウザのエンコードで自動にすれば解消するのは皆さんも把握済みのことだと思います(笑)
    • good
    • 0

> AddDefaultCharsetに指定がある場合にはサーバはその


> 内容で送りつけてブラウザはそれを表示するのだと思います。

違います.

ちょっと確認すればすぐにわかることですが,このディレクティブで指定されたcharset情報をHTTPのヘッダに吐くだけであって,HTMLの内容には何ら手をつけません.

レスポンスヘッダとMETAタグのどちらの指定に従うか,はたまたどちらにも従わず自動検出を試みるかなどは,ブラウザの実装次第です.
    • good
    • 0

sha-girlさんでしたら、検索で調べればわかってしまうとは思われますが、



http://httpd.apache.org/docs/mod/core.html#addde …

にあるように、通常はMETAタグに記述された文字セットによりブラウザは表示しますが、
AddDefaultCharsetに指定がある場合にはサーバはその内容で送りつけてブラウザはそれを表示するのだと思います。

AddDefaultCharset Off
がデフォルトなのですが、httpd.confの初期で設定されてるデフォルトにiso-8859-1をつけて配布されているために、初心者泣かせな状態にあるといえます。
かつて、誰だったかがこれを変更して欲しいというたぐいの内容を書いたものを見たような気がしますが、依然としてそのままになっているようです。検索するとその理由も探せるかも知れませんね。

参考URL:http://httpd.apache.org/docs/content-negotiation …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
httpプロトコルに対して、根拠のない先入観みたいなものがあったようです。
色々と調べてみようと思います。

お礼日時:2003/09/17 13:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!