このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

ASIP WEB サーバ:HTTPヘッダについて

発言者:今泉克美
( Date Tuesday, February 20, 2001 15:47:46 )


WEB&FILEサーバ ASIP6.20
OS 8.6
です。

いつもお世話になっております。
HTTPヘッダについてご質問させてください。

過去のアーカイブについて検索しましたが
どうもピッタリの記事が見当たりませんでした。

田中先生の
http://mtlab.ecn.fpu.ac.jp/mySamples/Understand_HTTP.pdf
も参考にさせていただいております。

背景:
私どものサイトは、他のサイトからリンクでご紹介して
いただいております。私どもの HTML はシフトJISで
記述しています。他のサイトがEUCであったときにですが
そこから私どものサイトの飛んできたときに、文字化け、
あるいはひどいときにはまるっきり見えない(透明)
だったりします。

現象:
この不具合を回避しようとしました。
私どもの HTML の記述を強化して
以下のような <META>をあらたに付加した上で
サーバからの
HTTPレスポンスヘッダを採取してみました。
-------------------------------------------------------
HTML例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML lang="ja">
<HEAD>
<LINK rev="MADE" href="mailto:toiawase@mail.mydomain.com">
<LINK rel="INDEX" href="http://mydomain.com">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>宿泊予約窓口へメール</TITLE>
</HEAD>
<BODY>
... 以下、省略

-------------------------------------------------------
HTTPレスポンスヘッダ
(行頭の数字は、筆者が説明の都合上、書きました。)
01 Date: Mon, 19 Feb 2001 04:13:30 GMT
02 Server: AppleShareIP/6.2.0
03 Content-Length: 524289
04 Content-Type: text/html
05 Content-Type: text/html; charset=Shift_JIS
06 Last-Modified: Mon, 19 Feb 2001 04:14:02 GMT
07 Client-Date: Mon, 19 Feb 2001 04:26:21 GMT
08 Client-Peer: 999.999.999.999:80
09 Link: <http://mydomain.com>; rel="INDEX"
10 Mime-Version: 1.0
11 Title: お問い合わせ窓口
-------------------------------------------------------

状況:
正しい、 HTTPレスポンスヘッダ?不明です。
1行目にあるはずの、リターンコードが見当たらないこと。
4行目と5行目に  Content-Type:がダブッテいますし
内容に相違点があります。
なお、色々とためした結果ですが
5行目の Content-Type は、HTML で記述したものが
そのまま帰ってきていますし、また
9行目の Link: <http://mydomain.com>; rel="INDEX"
は HTML の <LINK> の記述どうりに帰ってきています。
また、恐らくは、4行目の Content-Type はサーバが
おこしているのだと思われます。

質問1:
そもそもサーバの設定で
 Content-Type が charset=Shift_JIS
であるように出きれば
サイト内の各ページの HTML 記述は簡便に
すませられると思うのです。
いちいち <META> を書かなくて良いからです。
(修正する労力をケチっているわけでは
ないのですが)

ASIPにて
このような設定方法はありますでしょうか。

質問2:
上記の HTTP レスポンスヘッダは
正しい反応なのでしょうか?
正しくできているのだけれども
私が理解していないだけの可能性が
高いと思いますので。

----------------------------------------
どうか皆様のお知恵を
お借りいたしたく、宜しくお願い申し上げます。

田中求之 さんからのコメント
( Tuesday, February 20, 2001 16:01:11 )

>HTTPレスポンスヘッダを採取してみました。

どうやって採取しましたか?


普通は、<META> タグで書いたものが、サーバのヘッダの中に含まれる
ことはないと思うんですが…??

>ASIPにて
>このような設定方法はありますでしょうか。

Web サーバの設定の MIME タイプのマッピングの設定の部分で、.html と .htm
に text/html; charset=Shift_JIS を登録するとうまくいきませんか?

今泉克美 さんからのコメント
( Wednesday, February 21, 2001 17:09:01 )

田中先生、レスありがとうございます。

-------------------------------------------------

田中先生>>HTTPレスポンスヘッダを採取してみました。
田中先生>どうやって採取しましたか?

Ishino k16氏によるサイト
Another HTML-lint gateway
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html
では、HTMLの文法チェック機能、W3Cにより推奨される
読みやすい文書作りのチェック機能をフリーで
提供して頂いています。

今回は、文字化けということで
HTMLの記述とHTTPヘッダの記述が矛盾していないか
どうかまで調べてみたいと思いまして
同サイトによるチェックサポートに付随する
HTTPヘッダの表示機能をあわせて利用させて
いただきました。

------------------------------------------------------

田中先生>Web サーバの設定の MIME タイプのマッピングの
田中先生>設定の部分で、.html と .htmに
田中先生> text/html; charset=Shift_JIS を
田中先生>登録するとうまくいきませんか?

さっそく追試してみたいと思います。
あわせて、HTTPのログをASIPサイドで
とってみたく思います。
ご指導ありがとうございます。

------------------------------------------------------

田中先生>普通は、<META> タグで書いたものが、
田中先生>サーバのヘッダの中に含まれる
田中先生>ことはないと思うんですが…??

レスポンスヘッダ?のなかの
<LINK>といい、、どうなっているのか。。。
じっくり見てみたいと思います。

私の最初の投稿をみて
今ほど気がついたのですが
<LINK>は
<META>よりも後に記述する習慣をつけるべきですね。
日本語ドメインが登場しはじめましたので、
利用時に注意しなければいけません。
どこかの書籍のマネをしただけじゃぁ
だめということになります。反省です。

田中先生がおっしゃられるとおり
原理がわかっていないとどうしようもない、
臨機応変がききません。

田中求之 さんからのコメント
( Wednesday, February 21, 2001 17:23:42 )

サーバのヘッダやブラウザのリクエストの中身を確かめるのでしたら、Interarchy 4.0 を
つかって、これの Traffic で確認する(アクセスするマシンで)のが手っ取り
早いですよ。実際にネットを流れるデータをそのまま見れます。

今泉克美 さんからのコメント
( Friday, February 23, 2001 09:22:00 )

田中先生、ご助言ありがとうございます。
Interarchy 4.0の情報、ありがとうございます。

先生のおっしゃられるとおりに
サーバのMIMEヘッダを編集したところ
文字化けは激減しました。

きちんとしたHTTP応答ヘッダは
まだ確認しきれていません。

ただ、こちらのサイトの
フレームページからのリンクで
外部のサイトのページをフレーム内に
表示する必要があり、
(注;これは悪い作法であることは承知しておりますが
先方もそれを許容しておりますし、利用者の便宜をはかっての
ことなのですが)
こちらのサイトがシフトJIS、先方がEUCのため
場合によっては文字化けをひきおこすネタになっているようです。
このパターンのときに、フレーム内になにも写らない現象が
出てくるとわかりました。
これは、フレームを使っているなかで、あやしいことを
しているからなので、構造を考え直す必要があります。
というわけで、現象的には解決いたしました。

ありがとうございます。

なお
サーバにおいてあるHTML文書の
<LINK>
が、HTTP応答ヘッダに盛りこまれる
可能性があるらしいことを
ものの本で読みましたが
原典がはっきりしませんでした。

<META>の内容がHTTP応答ヘッダに
かきこまれることが
ASIPの仕様かどうかは依然不明です。

この辺、各サーバの実装状況は
かなりあいまいになっている
のかもしれませんが。。。

極論いってしまうと
サーバからのMIMEで
せっかくシフトJISだよと宣言してあっても
HTMLの<META>で宣言したEUCのほうが
勝ってしまうブラウザの方が多いのです。
これは仕様から考えるとおかしなものだという
印象なのですが、仕方がありません。
我が家のサーバくらいはしっかりとしておこうと
思うだけです。

今泉克美 さんからのコメント
( Tuesday, February 27, 2001 12:50:19 )

おかげ様で。

HTTP/1.0 200 OK
Mime-Version: 1.0
Server: AppleShareIP/6.2.0
Accept-ranges: bytes
Date: Tue, 27 Feb 2001 03:03:38 GMT
Content-type: text/html; charset=Shift_JIS
Content-length: 16845
Last-Modified: Wed, 21 Feb 2001 08:32:33 GMT

とHTTP応答がかえってきていると判明しました。

あとは、
1:
ウチのサイト内の全HTTP文書の
content-typeの誤まりがないかどうか再チェックする
だけとなります。
業者さんに作ってもらったなかに稀に
content-typeでcharset=X-MAC-JAPANESE
というのがあって、
「ハテ」とクビをかしげてしまいます。
作成したのは
GOLIVEなるWebオーサリングソフトらしいのですが。
2:
ウチのページはシフトJISの予定ですが、
フレーム内で他のところのEUCの文書を子フレームとして
使っているのです。こちらに関しては、どうしたら良いか
検討中です。いっそ全部EUCにしてしまうのもいいけれど。

田中先生ありがとうございました。

今泉克美 さんからのコメント
( Tuesday, June 12, 2001 13:12:03 )

本日、ふとしたことから、
TELNET で、HTTP応答ヘッダを採取できたので
報告させていただきます。
常識なのかもしれませんが、
嬉しかったので。

環境:AppleShareIP およびに Win98SE クライアント

方法:

1.
Win98SE クライアントで
DOS プロンプト画面を表示。

2.
コマンドラインに以下のコマンドをたたく。
調べたいサーバをパラメータに宣言します。
最後の 80 は HTTP の PORT 番号。

telnet www.myserver.co.jp 80

3.
すると TELNET のウインドウが開きます。
続いて、カーソルのあるところから
以下の通りにたたきます。
ただし、(改行)とあるところでは、 ENTER をタイプインします。
また、ここでは、該当のサーバのトップページとして
/index.html が存在しているものとします。
別なページでもかまいません。

GET /index.html HTTP/1.0(改行)
(改行)

4.実際には、 TELNET でコマンドをたたく前に
ログファイルの指定をしておくと便利です。

−−−−−−−−−−−−−−−−−−−−−−

付記:

ホスティングでバーチャルドメインの領域を借り受けたものの
親のドメインが HTML を持っていない環境で(笑)
上記の方法がつかえませんでした。

そこで、ためしてみました。

上記とほぼ同様ですが、1.0から1.1 にかえると
ホスト名を指定できて、快適でした。
バーチャルドメインのホストをパラメータとして
TELNET しました。

telnet www.myserver.co.jp 80

にて

GET /index.html HTTP/1.1(改行)
HOST: www.myserver.co.jp(改行)
(改行)

これで、HTTP応答ヘッダを
採取できました。