2

BufferedWriter でラップされた Java ソケットを使用して「index.html」コードを送信しようとしています。ブラウザーを開いて「localhost:port」に接続すると、次のようになります。

  • テキスト出力 ( <head>...</head> <body>...</body>) - firefox@linux
  • テキスト出力 - chrome@linux
  • 正しい Web ページ ビュー - konqueror@linux
  • テキスト出力 - firefox@windows7

これを修正して、すべてのブラウザで正しいビューを取得するにはどうすればよいですか?

4

1 に答える 1

3

これを修正して、すべてのブラウザで正しいビューを取得するにはどうすればよいですか?

あなたの説明によると、あなたのコードは HTTP プロトコルに重大な違反をしており、各ブラウザーがこの違反を異なる方法で処理しているようです。最初に行う必要があるのは、 http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6を参照して HTTP をブラッシュアップすることです。

応答ステータス行、Content-Length などの必要なヘッダー、その後にメッセージ本文 (index.html) を送信していないようです。

RFC2616 を読み、HTTP プロトコルへの準拠に何が関係しているのかを理解した後、これを自分で行うことを再考し、これを処理するためにいくつかのフレームワークのいずれかを使用することを検討することをお勧めします。TomcatJettyは非常に人気のある Java ベースの HTTP フレームワークです。 Nettyもオプションであり、より軽量でカスタマイズ可能なフレームワークです。

于 2012-11-22T17:55:24.293 に答える