Http-parameters
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
統一リソース識別子
Uniform Resource Identifiers(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ヘッダーフィールドでcontent-coding値を使用します。これについては、以降の章で説明します。
例
有効なエンコードスキームは次のとおりです。
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国コードです。