2017-01-14 11 views
0

大学評価としてHTMLページを表示するサーバーを作成中です。すべてのファイルはローカルに保存されます。 Firefoxを使ってサーバーに接続する(クロムは画像をブロックするようです)JavaのクライアントにHTTP応答を正しく送信する方法

私が転送されていたHTMLファイル自体にHTTPレスポンスを入力した場合、コードは以下の罰金作品(私が入力してる「HTTP/1.1 200 OK」HTMLファイルの開始時)

   { 

        byte[] pageToBytes = Files.readAllBytes(webContent.toPath()); 

        os.write(pageToBytes); 
        os.flush(); 
        os.close();     

       } 

しかし、もし私は試して、最初にHTTP応答を送信し、その後HTML、私は自分のHTMLコードで指定されたイメージを読み込むことを拒否します。ここで

コードは、私が問題を把握しようとしているです:

    { 

        byte[] pageToBytes = Files.readAllBytes(webContent.toPath()); 


        String HttpOK = "HTTP/1.1 200 OK\n\r"; 

        os.write(HttpOK.getBytes());       
        os.write(pageToBytes); 
        os.flush(); 
        os.close();     

       } 

任意の洞察力をいただければ幸い:)

答えて

0

あなたはブラウザが要求を開いて行うと、HTTPリクエストについてお読みくださいサーバーとクライアント間の通信チャネル(書き込み先のストリーム)は、クライアントが応答を受信するとこのチャネルを閉じます。

コードでは一度応答していますが、2回目にストリームが既に閉じられているため、レスポンスボディがクライアントに到達することはありません。また、エラーがなければサーバーは自動的に200コードを送信します。

0

httpサーバーを作成しようとしているので、here には、http要求&の応答を処理する方法が記載されています。

関連する問題