Security-testing-http-methods
セキュリティテスト-HTTPメソッド
HTTPメソッド
HTTP/1.1の共通メソッドのセットを以下に定義し、このセットは要件に基づいて拡張できます。 これらのメソッド名は大文字と小文字が区別され、大文字で使用する必要があります。
S.No. | Method and Description |
---|---|
1 |
GET これは、特定のURIを使用して特定のサーバーから情報を取得するために使用されます。 GETを使用するリクエストは、データを取得するだけで、データに他の影響を与えません。 |
2 |
HEAD GETと同じですが、ステータス行とヘッダーセクションのみを転送します。 |
3 |
POST サーバーにデータを送信するために使用されます。 たとえば、顧客情報、ファイルのアップロードなど。 HTMLフォームを使用します。 |
4 |
PUT ターゲットリソースの現在のすべての表現を、アップロードされたコンテンツに置き換えます。 |
5 |
DELETE URIで指定されたターゲットリソースの現在の表現をすべて削除します。 |
6 |
CONNECT 指定されたURIで識別されるサーバーへのトンネルを確立します。 |
7 |
OPTIONS ターゲットリソースの通信オプションについて説明します。 |
8 |
TRACE ターゲットリソースへのパスに沿ってメッセージループバックテストを実行します。 |
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メソッド
機能的には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メソッドを使用して、 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 に特定のentity-boyを保存するように要求します-
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メソッド
クライアントが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メソッド
クライアントは、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メソッド
これは、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)