Security-testing-http-parameters
セキュリティテスト-HTTPパラメーター
HTTPパラメーター
ここでは、HTTPクライアントまたはサーバープログラムの作成中に要求および応答メッセージを作成するのに必要ないくつかの重要なHTTPプロトコルパラメーターとその構文について説明します。 HTTPリクエストとレスポンスのメッセージ構造について説明しながら、これらのパラメーターの完全な使用方法を以降の章で説明します。
HTTPバージョン
HTTPは、プロトコルのバージョンを示すために <major>。<minor> 番号付けスキームを使用します。 HTTPメッセージのバージョンは、最初の行のHTTP-Versionフィールドで示されます。 HTTPバージョン番号を指定する一般的な構文は次のとおりです-
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
例
HTTP/1.0
or
HTTP/1.1
Uniform Resource Identifiers(URI)
URIは、名前、場所などを含む単純にフォーマットされた大文字と小文字を区別しない文字列です。 リソースを識別する。 たとえば、Webサイト名、Webサービスなど。 HTTPに使用されるURIの一般的な構文は次のとおりです-
URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
ここで、 port が空または指定されていない場合、HTTPのポート80が想定され、空の abs_path は abs_path の「/」と同等です。 reserved および unsafe セットの文字以外の文字は、 ""% "HEX HEX"エンコーディングと同等です。
例
次の3つのURIは同等です-
http://abc.com:80/~smith/homel
http://ABC.com/%7Esmith/homel
http://ABC.com:/%7esmith/homel
日付/時刻形式
すべてのHTTP日付/時刻スタンプは、例外なくグリニッジ標準時(GMT)で表す必要があります。 HTTPアプリケーションは、日付/時刻スタンプの次の3つの表現のいずれかを使用することが許可されています-
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
キャラクターセット
文字セットを使用して、クライアントが好む文字セットを指定します。 複数の文字セットをコンマで区切ってリストできます。 値が指定されていない場合、デフォルトはUS-ASCIIです。
例
次の文字セットが有効です-
US-ASCII
or
ISO-8859-1
or
ISO-8859-7
コンテンツエンコーディング
コンテンツエンコーディング値は、ネットワーク上でコンテンツを渡す前に、エンコーディングアルゴリズムを使用してコンテンツをエンコードすることを示します。 コンテンツエンコーディングは主に、ドキュメントを圧縮したり、IDを失わずに便利に変換したりするために使用されます。
すべてのコンテンツコーディング値は大文字と小文字を区別しません。 HTTP/1.1は、Accept-EncodingおよびContent-Encodingヘッダーフィールドのコンテンツコーディング値を使用します。
例
以下は、有効なエンコード方式です-
Accept-encoding: gzip
or
Accept-encoding: compress
or
Accept-encoding: deflate
メディアの種類
HTTPは、 Content-Type および Accept ヘッダーフィールドでインターネットメディアタイプを使用して、オープンで拡張可能なデータタイピングとタイプネゴシエーションを提供します。 すべてのメディアタイプの値は、Internet Assigned Number Authority((IANA)に登録されています。 次の一般的な構文は、メディアタイプを指定します-
media-type = type "/" subtype *( ";" parameter )
タイプ、サブタイプ、およびパラメーターの属性名では、大文字と小文字が区別されません。
例
Accept: image/gif
言語タグ
HTTPは、 Accept-Language および Content-Language フィールド内で言語タグを使用します。 言語タグは、1つ以上の部分で構成されています:プライマリ言語タグとサブタグの空のシリーズ-
language-tag = primary-tag *( "-" subtag )
タグ内では空白は許可されず、すべてのタグは大文字と小文字を区別しません。
例
タグの例-
en, en-US, en-cockney, i-cherokee, x-pig-latin
ここで、2文字のprimary-tagはISO-639言語の略語であり、2文字の初期サブタグはISO-3166国コードです。