JavaA2Z

KAB-studio > プログラミング > JavaA2Z > レスポンスとは

レスポンス

日本語 反応
英語 response
ふりがな れすぽんす
フリガナ レスポンス

解説

リクエストに対する返答。
HTTPGETメソッド等によるリクエストを受けて返される情報。
リクエストヘッダーホームページからなる。
 
まず「プロトコル/バージョン ステータスコード」が返される。
HTTP/1.1 200 OK」となっていれば取得成功ということになる。
その後、レスポンスヘッダーが続き、空の後、本文、つまり「ホームページ」となる。
 
サーブレットの場合、doGet()メソッド及びdoPost()メソッド引数として渡されるHttpServletResponseインターフェイスを使用して、レスポンスを返す。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
import java.io.PrintWriter;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class Sample
{
    public static void main( String[] args )
    {
        // 接続先のホスト名(URLではありません)。
        String host = "www.yahoo.co.jp";
        // 接続時のポート番号。
        int port = 80;
        // リクエストのメソッド。
        String method = "GET";
        // リクエストURL。
        String url = "/index.html";
        // リクエストのプロトコル。
        String protocol = "HTTP/1.1";
        // 「Host」リクエストヘッダー。
        String hostHeader = "Host:";
        // Content-Typeの文字コード(注:実際には、HEADで文字コードを取得してから指定します)。
        String charSet = "EUC-JP";

        // ソケットクラス。
        Socket socket = null;

        // ホームページを取得するためのストリームクラス。
        InputStreamReader inputStreamReader = null;
        BufferedReader bufferedReader = null;

        // 接続情報を送るためのストリームクラス。
        OutputStreamWriter outputStreamWriter = null;
        BufferedWriter bufferedWriter = null;
        PrintWriter printWriter = null;
        try
        {
            // 接続します。
            socket = new Socket( host, port );

            // ホームページ取得用ストリームクラスを準備します。
            inputStreamReader = new InputStreamReader( socket.getInputStream(), charSet );
            bufferedReader = new BufferedReader( inputStreamReader );

            // リクエスト送信用ストリームクラスを準備します。
            outputStreamWriter = new OutputStreamWriter( socket.getOutputStream() );
            bufferedWriter = new BufferedWriter( outputStreamWriter );
            printWriter = new PrintWriter( bufferedWriter );

            // リクエストを送信します。
            // GET /index.html HTTP/1.1
            // Host:www.yahoo.co.jp
            // (改行のみ)
            printWriter.println( method + " " + url + " " + protocol );
            printWriter.println( hostHeader + host );
            printWriter.println();
            printWriter.flush();

            // ホームページの情報を取得します。
            String line = null;
            do
            {
                line = bufferedReader.readLine();
                if( line != null )
                {
                    System.out.println( line );
                }
            }
            while( line != null );
            // HTTP/1.1 200 OK    // ↓ここ以降がレスポンス。
            // Date: Fri, 07 Oct 2005 13:31:23 GMT
            // P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
            // Expires: -1
            // Pragma: no-cache
            // Cache-Control: no-cache
            // Connection: close
            // Content-Type: text/html;charset=euc-jp
            // 
            // <html>
            // <head>
            // <title>Yahoo! JAPAN</title>
            // (以下略)
        }
        catch( UnknownHostException e )
        {
            e.printStackTrace();
        }
        catch( IOException e )
        {
            e.printStackTrace();
        }
        finally
        {
            // ストリーム及びソケットを閉じます。
            if( printWriter != null )
            {
                printWriter.close();
            }

            try
            {
                if( bufferedWriter != null )
                {
                    bufferedWriter.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( outputStreamWriter != null )
                {
                    outputStreamWriter.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( bufferedReader != null )
                {
                    bufferedReader.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( inputStreamReader != null )
                {
                    inputStreamReader.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( socket != null )
                {
                    socket.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}
// Sample.java
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
import java.io.PrintWriter;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class Sample
{
    public static void main( String[] args )
    {
        // 接続先のホスト名(URLではありません)。
        String host = "www.yahoo.co.jp";
        // 接続時のポート番号。
        int port = 80;
        // リクエストのメソッド。
        String method = "GET";
        // リクエストURL。
        String url = "/index.html";
        // リクエストのプロトコル。
        String protocol = "HTTP/1.1";
        // 「Host」リクエストヘッダー。
        String hostHeader = "Host:";
        // Content-Typeの文字コード(注:実際には、HEADで文字コードを取得してから指定します)。
        String charSet = "EUC-JP";

        // ソケットクラス。
        Socket socket = null;

        // ホームページを取得するためのストリームクラス。
        InputStreamReader inputStreamReader = null;
        BufferedReader bufferedReader = null;

        // 接続情報を送るためのストリームクラス。
        OutputStreamWriter outputStreamWriter = null;
        BufferedWriter bufferedWriter = null;
        PrintWriter printWriter = null;
        try
        {
            // 接続します。
            socket = new Socket( host, port );

            // ホームページ取得用ストリームクラスを準備します。
            inputStreamReader = new InputStreamReader( socket.getInputStream(), charSet );
            bufferedReader = new BufferedReader( inputStreamReader );

            // リクエスト送信用ストリームクラスを準備します。
            outputStreamWriter = new OutputStreamWriter( socket.getOutputStream() );
            bufferedWriter = new BufferedWriter( outputStreamWriter );
            printWriter = new PrintWriter( bufferedWriter );

            // リクエストを送信します。
            // GET /index.html HTTP/1.1
            // Host:www.yahoo.co.jp
            // (改行のみ)
            printWriter.println( method + " " + url + " " + protocol );
            printWriter.println( hostHeader + host );
            printWriter.println();
            printWriter.flush();

            // ホームページの情報を取得します。
            String line = null;
            do
            {
                line = bufferedReader.readLine();
                if( line != null )
                {
                    System.out.println( line );
                }
            }
            while( line != null );
            // HTTP/1.1 200 OK	// ↓ここ以降がレスポンス。
            // Date: Fri, 07 Oct 2005 13:31:23 GMT
            // P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
            // Expires: -1
            // Pragma: no-cache
            // Cache-Control: no-cache
            // Connection: close
            // Content-Type: text/html;charset=euc-jp
            // 
            // <html>
            // <head>
            // <title>Yahoo! JAPAN</title>
            // (以下略)
        }
        catch( UnknownHostException e )
        {
            e.printStackTrace();
        }
        catch( IOException e )
        {
            e.printStackTrace();
        }
        finally
        {
            // ストリーム及びソケットを閉じます。
            if( printWriter != null )
            {
                printWriter.close();
            }

            try
            {
                if( bufferedWriter != null )
                {
                    bufferedWriter.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( outputStreamWriter != null )
                {
                    outputStreamWriter.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( bufferedReader != null )
                {
                    bufferedReader.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( inputStreamReader != null )
                {
                    inputStreamReader.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }

            try
            {
                if( socket != null )
                {
                    socket.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}

この単語を含むページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/10/11
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。