AN HTTPD ゲストブック/コメント集(2000年3月9日07:54)


中田昭雄 nakata@st.rim.or.jp 2000/03/11 09:48

えむけいさん、
そうですが、RFC2616 ではちょっとはっきりしないところです。このあたりは結構混乱があったらしくてRFC2068のあとでRFC2145が出ているわけですが、それでもなんだかすっきりしませんね。
はっきりしないときは Apache がどうやっているかを見るのが一番だと思っています。実例だけ見て間違うおそれもありますが。


えむけい VYV03354@nifty.ne.jp 2000/03/11 06:53

>なお、HTTP/1.1 では、クライアントの要求より大きな(マイナー)バージョンを返してはならない、という話はありません。プロクシの話と混同されているのでは?

 御意。完璧に勘違いしていました。HTTPプロトコルのマイナーバージョンはメッセージの解釈ではなくて送信者の能力をあらわしているとかちゃんと書いてありますね。


中田昭雄 nakata@st.rim.or.jp 2000/03/09 21:23

えむけいさん、
AppletViewerの方の話は、まず、
Java and HTTP/1.1
Apache Server FAQ
をご覧ください。
"This is definitely a bug in the JDK 1.0.2 foundation classes from Sun" ということのようです。
対策は、JDK 1.1 以降にすることになります。
JDK 1.0.2 を使いたい場合は、回避策として、 Apache の場合、
BrowserMatch JDK/1.0 force-response-1.0
でもいいわけですが、AN HTTPD の場合は HTTP/1.0 にする、というのがこれに相当しますね。

なお、HTTP/1.1 では、クライアントの要求より大きな(マイナー)バージョンを返してはならない、という話はありません。プロクシの話と混同されているのでは?
また、CGI/1.1 の SERVER_PROTOCOL はクライアントの要求バージョンでしたね。


えむけい VYV03354@nifty.ne.jp 2000/03/09 07:54

 HTTPバージョンを1.1にしていると、JDK 1.0.2付属のAppletViewerではClassFormatErrorと表示されてJavaアプレットをロードすることができません。
 とりあえずHTTPバージョンの設定を1.0にすることで回避できましたが、RFC2616にもクライアントの要求より大きなHTTPバージョンを返してはならないとはっきり書かれているはずなので、HTTP/1.0クライアントにはHTTPバージョンの設定にかかわらずHTTP/1.0で応答するようにできないでしょうか?