Http-methods
HTTP-メソッド
HTTP/1.1の共通メソッドのセットを以下に定義し、このセットは要件に基づいて拡張できます。 これらのメソッド名は大文字と小文字が区別され、大文字で使用する必要があります。
S.N. | Method and Description |
---|---|
1 |
GET GETメソッドは、特定のURIを使用して特定のサーバーから情報を取得するために使用されます。 GETを使用するリクエストは、データを取得するだけで、データに他の影響を与えません。 |
2 |
HEAD GETと同じですが、ステータス行とヘッダーセクションのみを転送します。 |
3 |
POST POSTリクエストは、顧客情報、ファイルのアップロードなどのデータをサーバーに送信するために使用されます。 HTMLフォームを使用します。 |
4 |
PUT ターゲットリソースの現在のすべての表現を、アップロードされたコンテンツで置き換えます。 |
5 |
DELETE URIで指定されたターゲットリソースの現在の表現をすべて削除します。 |
6 |
CONNECT 特定のURIで識別されるサーバーへのトンネルを確立します。 |
7 |
OPTIONS ターゲットリソースの通信オプションについて説明します。 |
8 |
TRACE ターゲットリソースへのパスに沿ってメッセージループバックテストを実行します。 |
GETメソッド
GET要求は、要求のURL部分にパラメーターを指定することにより、Webサーバーからデータを取得します。 これは、ドキュメントの取得に使用される主な方法です。 次の例では、GETメソッドを使用してhelloをフェッチします。
GET/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
上記のGET要求に対するサーバーの応答は次のとおりです。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
HEADメソッド
HEADメソッドは機能的にはGETと似ていますが、サーバーが応答行とヘッダーで応答しますが、エンティティ本体はありません。 次の例では、HEADメソッドを使用してhelloに関するヘッダー情報をフェッチします。
HEAD/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
上記のGET要求に対するサーバーの応答は次のとおりです。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed
ここで、サーバーはヘッダーの後にデータを送信しないことに注意してください。
POSTメソッド
POSTメソッドは、ファイルの更新、フォームデータなどのデータをサーバーに送信するときに使用されます。 次の例では、POSTメソッドを使用してフォームデータをサーバーに送信します。フォームデータは、process.cgiによって処理され、最終的に応答が返されます。
POST/cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Content-Type: text/xml; charset=utf-8
Content-Length: 88
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://clearforest.com/">string</string>
サーバー側のスクリプトprocess.cgiは、渡されたデータを処理し、次の応答を送信します。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed
<html>
<body>
<h1>Request Processed Successfully</h1>
</body>
</html>
PUTメソッド
PUTメソッドは、指定されたURLで指定された場所に含まれるエンティティ本体を格納するようサーバーに要求するために使用されます。 次の例では、指定されたエンティティ本体をサーバーのルートにある hello に保存するようサーバーに要求します。
PUT/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Connection: Keep-Alive
Content-type: text/html
Content-Length: 182
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
サーバーは指定されたエンティティ本体を hello ファイルに保存し、次の応答をクライアントに送信します。
HTTP/1.1 201 Created
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed
<html>
<body>
<h1>The file was created.</h1>
</body>
</html>
DELETEメソッド
DELETEメソッドは、指定されたURLで指定された場所にあるファイルを削除するようサーバーに要求するために使用されます。 次の例では、サーバーに、サーバーのルートにある特定のファイル hello を削除するように要求します。
DELETE/hello HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.finddevguides.com
Accept-Language: en-us
Connection: Keep-Alive
サーバーは上記のファイル hello を削除し、次の応答をクライアントに送信します。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed
<html>
<body>
<h1>URL deleted.</h1>
</body>
</html>
CONNECTメソッド
クライアントはCONNECTメソッドを使用して、HTTP経由でWebサーバーへのネットワーク接続を確立します。 次の例では、ホストfinddevguides.comで実行されているWebサーバーとの接続を要求します。
CONNECT www.finddevguides.com HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
サーバーとの接続が確立され、次の応答がクライアントに返されます。
HTTP/1.1 200 Connection established
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
OPTIONSメソッド
OPTIONSメソッドは、WebサーバーでサポートされているHTTPメソッドやその他のオプションを見つけるためにクライアントによって使用されます。 クライアントは、OPTIONSメソッドのURL、またはサーバー全体を参照するアスタリスク(*)を指定できます。 次の例は、finddevguides.comで実行されているWebサーバーでサポートされているメソッドのリストを要求します。
OPTIONS * HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
サーバーは、サーバーの現在の構成に基づいて、次のような情報を送信します。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Type: httpd/unix-directory
TRACEメソッド
TRACEメソッドは、HTTP要求の内容をリクエスターにエコーバックするために使用されます。これは、開発時のデバッグ目的に使用できます。 次の例は、TRACEメソッドの使用法を示しています。
TRACE/HTTP/1.1
Host: www.finddevguides.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
サーバーは、上記のリクエストに応じて次のメッセージを送信します。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Connection: close
Content-Type: message/http
Content-Length: 39
TRACE/HTTP/1.1
Host: www.finddevguides.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)