リクエストパラメーター
日本語 | 要求助変数 |
英語 | request parameter |
ふりがな | りくえすとぱらめーたー |
フリガナ | リクエストパラメーター |
HTTPのリクエストを送信する際に、一緒に送ることができる情報。
リクエストをまさに「メソッド」とするなら、リクエストパラメーターはその「引数」となる。
GETで送信する場合、URLに付記する形式でリクエストパラメーターを送信する。
元々のURLに「?」を付け、そのあとに「名前=値」の形式でリクエストパラメーターを付記する。複数のリクエストパラメーターがある場合には「&」で継なぐ。
通常、リクエストパラメーターには半角英数字しか使用することはできない。日本語を使用する場合にはURLEncoderクラスのencode()メソッドで「%xx」という形式に変換する必要がある。ただし、その際の文字コードは特に決められていないため、通常はその文字コードの情報もリクエストパラメーターとして渡す。
たとえば、Googleで「あいうえお」を検索する場合、「http://www.google.co.jp/search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A」というURLになる。この「?」以降の「ie=UTF-8」及び「q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A」がリクエストパラメーターである。「%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A」は「あいうえお」をUTF-8形式に変換したものである。
POSTで送信する場合、入力フォームを用いて送信を行う。
この場合、URLには付記しないため、Webブラウザのアドレス欄に情報が表示されない。
ソケットで送信する場合には、送信内容は「本文」として送信する。この場合、同じく「名前=値」の形式で送信する。各データは改行で区切る。文字コードは受け取る側によって異なる。
ただし、このPOSTによる送信を「リクエストパラメーター」と呼ばない場合もある。
URLに付記する「?」以降のみを「リクエストパラメーター」と呼ぶこともある。
リクエストパラメーターをサーブレットで受け取る場合、HttpServletRequestクラスのgetParameter()メソッドで「名前」を指定することで「値」を取得することができる。
リクエストをまさに「メソッド」とするなら、リクエストパラメーターはその「引数」となる。
GETで送信する場合、URLに付記する形式でリクエストパラメーターを送信する。
元々のURLに「?」を付け、そのあとに「名前=値」の形式でリクエストパラメーターを付記する。複数のリクエストパラメーターがある場合には「&」で継なぐ。
通常、リクエストパラメーターには半角英数字しか使用することはできない。日本語を使用する場合にはURLEncoderクラスのencode()メソッドで「%xx」という形式に変換する必要がある。ただし、その際の文字コードは特に決められていないため、通常はその文字コードの情報もリクエストパラメーターとして渡す。
たとえば、Googleで「あいうえお」を検索する場合、「http://www.google.co.jp/search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A」というURLになる。この「?」以降の「ie=UTF-8」及び「q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A」がリクエストパラメーターである。「%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A」は「あいうえお」をUTF-8形式に変換したものである。
POSTで送信する場合、入力フォームを用いて送信を行う。
この場合、URLには付記しないため、Webブラウザのアドレス欄に情報が表示されない。
ソケットで送信する場合には、送信内容は「本文」として送信する。この場合、同じく「名前=値」の形式で送信する。各データは改行で区切る。文字コードは受け取る側によって異なる。
ただし、このPOSTによる送信を「リクエストパラメーター」と呼ばない場合もある。
URLに付記する「?」以降のみを「リクエストパラメーター」と呼ぶこともある。
リクエストパラメーターをサーブレットで受け取る場合、HttpServletRequestクラスのgetParameter()メソッドで「名前」を指定することで「値」を取得することができる。
// 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.io.UnsupportedEncodingException;
import java.net.Socket;
import java.net.URLEncoder;
import java.net.UnknownHostException;
public class Sample
{
public static void main( String[] args )
{
// 接続先のホスト名(URLではありません)。
String host = "www.google.co.jp";
// 接続時のポート番号。
int port = 80;
// リクエストのメソッド。
String method = "GET";
// リクエストURL。
String url = "/search?";
// リクエストのプロトコル。
String protocol = "HTTP/1.1";
// 「Host」リクエストヘッダー。
String hostHeader = "Host:";
// Googleに渡す検索文字列の文字コード、を指定するためのパラメーター名。
String ieName = "ie=";
// Googleに渡す検索文字列の文字コード。
String ieValue = "UTF-8";
// Googleに渡す検索文字列、を指定するためのパラメーター名。
String qName = "q=";
// Googleに渡す検索文字列。
String qValue = null;
try
{
qValue = URLEncoder.encode( "あいうえお", ieValue );
}
catch( UnsupportedEncodingException e )
{
e.printStackTrace();
}
// リクエストパラメーターを含めた、GETで渡すリクエストを
// 作成します。
StringBuffer request = new StringBuffer();
request.append( method );
request.append( " " );
request.append( url );
request.append( ieName );
request.append( ieValue );
request.append( "&" );
request.append( qName );
request.append( qValue );
request.append( " " );
request.append( protocol );
System.out.println( request );
// GET /search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A HTTP/1.1
// ソケットクラス。
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() );
bufferedReader = new BufferedReader( inputStreamReader );
// リクエスト送信用ストリームクラスを準備します。
outputStreamWriter = new OutputStreamWriter( socket.getOutputStream() );
bufferedWriter = new BufferedWriter( outputStreamWriter );
printWriter = new PrintWriter( bufferedWriter );
// リクエストを送信します。
// GET /search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A HTTP/1.1
// Host:www.google.co.jp
// (改行のみ)
printWriter.println( request.toString() );
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
// Cache-Control: private
// Content-Type: text/html
// Set-Cookie: PREF=ID=5f762de873e8cf87:TM=1125407150:LM=1125407150:S=BaDObXvvCxxpj02-; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.co.jp
// Server: GWS/2.1
// Transfer-Encoding: chunked
// Date: Tue, 30 Aug 2005 13:05:50 GMT
//
// dda
// <html><head><meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=Shift_JIS"><title>あいうえお - Google 検索 </title><style><!--
// (以下略)
}
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.io.UnsupportedEncodingException;
import java.net.Socket;
import java.net.URLEncoder;
import java.net.UnknownHostException;
public class Sample
{
public static void main( String[] args )
{
// 接続先のホスト名(URLではありません)。
String host = "www.google.co.jp";
// 接続時のポート番号。
int port = 80;
// リクエストのメソッド。
String method = "GET";
// リクエストURL。
String url = "/search?";
// リクエストのプロトコル。
String protocol = "HTTP/1.1";
// 「Host」リクエストヘッダー。
String hostHeader = "Host:";
// Googleに渡す検索文字列の文字コード、を指定するためのパラメーター名。
String ieName = "ie=";
// Googleに渡す検索文字列の文字コード。
String ieValue = "UTF-8";
// Googleに渡す検索文字列、を指定するためのパラメーター名。
String qName = "q=";
// Googleに渡す検索文字列。
String qValue = null;
try
{
qValue = URLEncoder.encode( "あいうえお", ieValue );
}
catch( UnsupportedEncodingException e )
{
e.printStackTrace();
}
// リクエストパラメーターを含めた、GETで渡すリクエストを
// 作成します。
StringBuffer request = new StringBuffer();
request.append( method );
request.append( " " );
request.append( url );
request.append( ieName );
request.append( ieValue );
request.append( "&" );
request.append( qName );
request.append( qValue );
request.append( " " );
request.append( protocol );
System.out.println( request );
// GET /search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A HTTP/1.1
// ソケットクラス。
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() );
bufferedReader = new BufferedReader( inputStreamReader );
// リクエスト送信用ストリームクラスを準備します。
outputStreamWriter = new OutputStreamWriter( socket.getOutputStream() );
bufferedWriter = new BufferedWriter( outputStreamWriter );
printWriter = new PrintWriter( bufferedWriter );
// リクエストを送信します。
// GET /search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A HTTP/1.1
// Host:www.google.co.jp
// (改行のみ)
printWriter.println( request.toString() );
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
// Cache-Control: private
// Content-Type: text/html
// Set-Cookie: PREF=ID=5f762de873e8cf87:TM=1125407150:LM=1125407150:S=BaDObXvvCxxpj02-; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.co.jp
// Server: GWS/2.1
// Transfer-Encoding: chunked
// Date: Tue, 30 Aug 2005 13:05:50 GMT
//
// dda
// <html><head><meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=Shift_JIS"><title>あいうえお - Google 検索 </title><style><!--
// (以下略)
}
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.io.UnsupportedEncodingException; import java.net.Socket; import java.net.URLEncoder; import java.net.UnknownHostException; public class Sample { public static void main( String[] args ) { // 接続先のホスト名(URLではありません)。 String host = "www.google.co.jp"; // 接続時のポート番号。 int port = 80; // リクエストのメソッド。 String method = "GET"; // リクエストURL。 String url = "/search?"; // リクエストのプロトコル。 String protocol = "HTTP/1.1"; // 「Host」リクエストヘッダー。 String hostHeader = "Host:"; // Googleに渡す検索文字列の文字コード、を指定するためのパラメーター名。 String ieName = "ie="; // Googleに渡す検索文字列の文字コード。 String ieValue = "UTF-8"; // Googleに渡す検索文字列、を指定するためのパラメーター名。 String qName = "q="; // Googleに渡す検索文字列。 String qValue = null; try { qValue = URLEncoder.encode( "あいうえお", ieValue ); } catch( UnsupportedEncodingException e ) { e.printStackTrace(); } // リクエストパラメーターを含めた、GETで渡すリクエストを // 作成します。 StringBuffer request = new StringBuffer(); request.append( method ); request.append( " " ); request.append( url ); request.append( ieName ); request.append( ieValue ); request.append( "&" ); request.append( qName ); request.append( qValue ); request.append( " " ); request.append( protocol ); System.out.println( request ); // GET /search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A HTTP/1.1 // ソケットクラス。 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() ); bufferedReader = new BufferedReader( inputStreamReader ); // リクエスト送信用ストリームクラスを準備します。 outputStreamWriter = new OutputStreamWriter( socket.getOutputStream() ); bufferedWriter = new BufferedWriter( outputStreamWriter ); printWriter = new PrintWriter( bufferedWriter ); // リクエストを送信します。 // GET /search?ie=UTF-8&q=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A HTTP/1.1 // Host:www.google.co.jp // (改行のみ) printWriter.println( request.toString() ); 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 // Cache-Control: private // Content-Type: text/html // Set-Cookie: PREF=ID=5f762de873e8cf87:TM=1125407150:LM=1125407150:S=BaDObXvvCxxpj02-; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.co.jp // Server: GWS/2.1 // Transfer-Encoding: chunked // Date: Tue, 30 Aug 2005 13:05:50 GMT // // dda // <html><head><meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=Shift_JIS"><title>あいうえお - Google 検索 </title><style><!-- // (以下略) } 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(); } } } }