HTTP-パラメータ

この章では、重要なHTTPプロトコルパラメータのいくつかと、それらが通信で使用される方法の構文をリストします。たとえば、日付の形式、URLの形式などです。これは、HTTPクライアントまたはサーバープログラムを作成するときに、要求メッセージと応答メッセージを作成するのに役立ちます。HTTP要求と応答のメッセージ構造を学習しながら、これらのパラメーターの完全な使用法を後続の章で確認します。

HTTPバージョン

HTTPは <major>.<minor>プロトコルのバージョンを示す番号付けスキーム。HTTPメッセージのバージョンは、最初の行のHTTP-Versionフィールドで示されます。HTTPバージョン番号を指定する一般的な構文は次のとおりです。

HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT

HTTP/1.0

or

HTTP/1.1

ユニフォームリソース識別子

URL(Uniform Resource Identifiers)は、名前や場所などを含む、大文字と小文字を区別しない単純な形式の文字列で、Webサイト、Webサービスなどのリソースを識別します。HTTPに使用されるURIの一般的な構文は次のとおりです。

URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

ここで port が空であるか指定されていない場合、ポート80はHTTPと見なされ、空です abs_path と同等です abs_path「/」の。内の文字以外の文字reserved そして unsafe セットは、「%」HEXHEXエンコーディングと同等です。

次の3つのURIは同等です。

http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html

日付/時刻形式

すべての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ヘッダーフィールドでcontent-coding値を使用します。

有効なエンコードスキームは次のとおりです。

Accept-encoding: gzip

or

Accept-encoding: compress

or 

Accept-encoding: deflate

メディアタイプ

HTTPは、インターネットメディアタイプを使用します。 Content-Type そして Acceptオープンで拡張可能なデータタイピングとタイプネゴシエーションを提供するためのヘッダーフィールド。すべてのMedia-type値は、Internet Assigned Number Authority(IANA)に登録されています。メディアタイプを指定する一般的な構文は次のとおりです。

media-type     = type "/" subtype *( ";" parameter )

タイプ、サブタイプ、およびパラメーターの属性名では、大文字と小文字は区別されません。

Accept: image/gif

言語タグ

HTTPは、内で言語タグを使用します Accept-Language そして Content-Language田畑。言語タグは、1つ以上の部分で構成されています。1次言語タグと、場合によっては空の一連のサブタグです。

language-tag  = primary-tag *( "-" subtag )

タグ内に空白を含めることはできません。すべてのタグで大文字と小文字は区別されません。

タグの例は次のとおりです。

en, en-US, en-cockney, i-cherokee, x-pig-latin

ここで、2文字のプライマリタグはISO-639言語の略語であり、2文字の最初のサブタグはISO-3166国コードです。