request#getRequestURL()とかgetServerName()とか

以下は apache1.3系、mod_jk2、Tomcat4.1.31での話。
getRequestURL()とかを呼ぶと

http://hoge.somehost.dn.jxx/context/hoge.jsp

とか帰ってくるけど、このホスト名の生成に関しては

GET /context/hoge.jsp HTTP/1.1
Host: hoge.somehost.dn.jxx

というようなリクエストであれば、Hostの内容を直接返してきている。VirtualHost使わない場合は好きな文字列になってしまうわけだ。
まあ、

GET /context/hoge.jsp HTTP/1.1
Host: some/invalid/form

とかやると ''400 Bad Request''を食らうわけで、悪さはできないと思うけど。

で、Hostヘッダがない要求の場合はというと、mod_jkのおかげ? apachehttpd.confのServerNameに、ポート番号をくっつけたものが返ることになる。ポート番号がくっつくのがイケてませんが。

TomcatはgetServerName()で返す値をproxyNameかなにか属性で制御できた気もするので調べてみようかな

かなり原子的な部分ですが...