レスポンスヘッダー
日本語 | 反応頭部 |
英語 | response header |
ふりがな | れすぽんすへっだー |
フリガナ | レスポンスヘッダー |
レスポンスと共に送る情報。
HTTPのGETメソッド等によるリクエストを受けて返される情報の内、「本文」の前に送信される情報。
「レスポンスヘッダー名:値」という形式で、一行につき一情報となる。
たとえば「Content-Type」の情報の場合、「Content-Type: ファイルの種類」という形で返される。
レスポンスヘッダーと本文との間には空行が入る。
サーブレットでレスポンスヘッダーを返す場合、HttpServletResponseインターフェイスのsetHeader()メソッド及びaddHeader()メソッドでレスポンスヘッダーの一行ずつをセットする。第1引数で「レスポンスヘッダー名」、第2引数で「値」をセットする。
ただし、レスポンスヘッダーの中には専用のメソッドを用いてセットするものもある。。
たとえば「Content-Type」の場合、HttpServletResponseインターフェイスのsetContentType()メソッドを用いて指定する。
HTTPのGETメソッド等によるリクエストを受けて返される情報の内、「本文」の前に送信される情報。
「レスポンスヘッダー名:値」という形式で、一行につき一情報となる。
たとえば「Content-Type」の情報の場合、「Content-Type: ファイルの種類」という形で返される。
レスポンスヘッダーと本文との間には空行が入る。
サーブレットでレスポンスヘッダーを返す場合、HttpServletResponseインターフェイスのsetHeader()メソッド及びaddHeader()メソッドでレスポンスヘッダーの一行ずつをセットする。第1引数で「レスポンスヘッダー名」、第2引数で「値」をセットする。
ただし、レスポンスヘッダーの中には専用のメソッドを用いてセットするものもある。。
たとえば「Content-Type」の場合、HttpServletResponseインターフェイスのsetContentType()メソッドを用いて指定する。
// 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();
}
}
}
}
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(); } } } }