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

ブラウザからみたバーチャルドメイン

発言者:大森智史
( Date Thursday, November 30, 2000 22:31:12 )


ブラウザを作っています。
http://www.apple.co.jp/などバーチャルでないURLにはアクセスでき、htmlも送り付けてくれるのですが、バーチャルドメインであるサイトではバーチャルでないサイトが表示されてしまいます。

本当はwww.bbb.com/aaa/index.htmlにあるwww.aaa.com/index.htmlというサイト。
NetscapeやExplolerでwww.aaa.com/index.htmlへアクセスすると、きちんと
www.bbb.com/aaa/index.htmlのファイルが送られてきますが、自作のブラウザではwww.bbb.com/index.htmlのファイルが送られてきます。

OTSessionWatcherなどでヘッダをみても、全く同じようで、訳がわかりません。

バーチャルドメインだということはブラウザ側が判断しているのでしょうか?
サーバとブラウザの間でどんなやり取りが必要なのでしょうか?

田中求之 さんからのコメント
( Friday, December 01, 2000 00:31:41 )

>バーチャルドメインだということはブラウザ側が判断しているのでしょうか?

バーチャルホストの場合には、ブラウザがサーバに対して送るリクエストの
HTTP ヘッダの中の Host ヘッダが、どのホストに対するアクセスかを判定する
決め手になります。

ですから、リクエストに Host ヘッダを必ず含めるようにし、そこにホストを
記述してください。

田中求之 さんからのコメント
( Friday, December 01, 2000 00:39:49 )

念のため書いておくと、

>www.bbb.com/aaa/index.htmlにあるwww.aaa.com/index.htmlというサイト

へのリクエストは、このマシンのポート80にコネクトした後に

GET /index.html HTTP/1.0  
Host: www.aaa.com

というリクエストを送ります。

大森智史 さんからのコメント
( Friday, December 01, 2000 08:49:59 )

ありがとうございました。
解決しました。

>GET /index.html HTTP/1.0  
>Host: www.aaa.com

>というリクエストを送ります。

Host:は付けていたのですが、「Host:」と「www.aaa.com」の間に半角スペースをつけるのを忘れていたために、サーバが無視していたようです。
おかげさまで、バーチャルホストも表示できるようになりました。