Security-testing-http-responses
セキュリティテスト-HTTP応答
HTTPレスポンス
要求メッセージを受信して解釈した後、サーバーはHTTP応答メッセージで応答します-
- ステータスライン
- CRLFが後に続く0個以上のヘッダー(一般|応答|エンティティ)フィールド
- ヘッダーフィールドの終わりを示す空の行(CRLFの前に何もない行) *オプションでメッセージ本文
次のセクションでは、HTTPメッセージで使用される各エンティティについて説明します-
メッセージステータス行
Status-Lineは、プロトコルバージョンとそれに続く数値のステータスコードとそれに関連するテキストフレーズで構成されます。 要素はスペースSP文字で区切られます。
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Status-Lineに記載されている各部分について説明しましょう。
HTTPバージョン
HTTPバージョン1.1をサポートするサーバーは、次のバージョン情報を返します-
HTTP-Version = HTTP/1.1
状態コード
Status-Codeエレメントは3桁の整数です。Status-Codeの最初の桁は応答のクラスを定義し、最後の2桁には分類の役割はありません。 最初の数字には5つの値があります-
S.No. | Value and Description |
---|---|
1 |
これは、リクエストを受信し、プロセスを継続することを意味します。 |
2 |
2xx: Success これは、アクションが正常に受信、理解、および受け入れられたことを意味します。 |
3 |
3xx: Redirection これは、リクエストを完了するためにさらにアクションを実行する必要があることを意味します。 |
4 |
4xx: Client Error これは、リクエストに不適切な構文が含まれているか、リクエストを処理できないことを意味します |
5 |
5xx: Server Error サーバーは明らかに有効な要求を実行できませんでした |
HTTPステータスコードは拡張可能であり、HTTPアプリケーションは登録されているすべてのステータスコードの意味を理解する必要はありません。
応答ヘッダーフィールド
応答ヘッダーフィールドを使用すると、サーバーは、ステータス行に配置できない応答に関する追加情報を渡すことができます。 これらのヘッダーフィールドは、サーバーに関する情報と、Request-URIで識別されるリソースへのさらなるアクセスに関する情報を提供します。
- 受諾範囲
- Age
- ETag
- ロケーション
- プロキシ認証
- 再試行後
- サーバ
- Vary
- WWW-認証
独自のカスタムWebクライアントおよびサーバーを作成する場合に備えて、カスタムフィールドを導入できます。
応答メッセージの例
それをまとめて、finddevguides.comで実行されているWebサーバーから hello ページをフェッチする要求のHTTP応答を作成します。
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
Content-Length: 88
Content-Type: text/html
Connection: Closed
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
以下は、Webサーバーが要求されたページを見つけられなかった場合のエラー状態を示すHTTP応答メッセージの例です-
HTTP/1.1 404 Not Found
Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
Connection: Closed
Content-Type: text/html; charset = iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h1>Not Found</h1>
<p>The requested URL/tl was not found on this server.</p>
</body>
</html>
以下は、Webサーバーが特定のHTTP要求で誤ったHTTPバージョンを検出した場合のエラー状態を示すHTTP応答メッセージの例です-
HTTP/1.1 400 Bad Request
Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
Content-Type: text/html; charset = iso-8859-1
Connection: Closed
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>400 Bad Request</title>
</head>
<body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<p>
<p>The request line contained invalid characters following the protocol string.<p>
</body>
</html>