* 仕様書 [REFS[ - [1] [CITE@en[RFC 3875 - The Common Gateway Interface (CGI) Version 1.1]] -- [2] -- [9] '''''' ]REFS] * URL scheme [3] [[CGI]] 仕様は [[URL scheme]] を特に限定していません。 [4] ただし[[非階層的URL scheme]]の対応は適用範囲外とされています [SRC[>>2]]。 * スクリプトの選択 [5] [[鯖]]は、 [[path]] の一部または全部により、実行する [[CGIスクリプト]]を選択します。 [6] この選択の方法は[[鯖]]に委ねられており、 [[path]] の全部を[[ファイル・システム]]に写像する場合もあるでしょうし、 どんな [[path]] であろうと特定の[[CGIスクリプト]]に写像する場合もあるでしょう。 [7] いずれにせよ、 [[path]] のある部分が [[CGIスクリプト]]を識別する時、 [[path]] の残った部分があれば、それは[[CGIスクリプト]]によって解釈されることになります。 [SRC[>>2]] * Request-URI と Script-URI [8] [[鯖]]は[[クライアント]]から[[要求]]があった [[URL]] の情報を[[メタ変数]]として設定して [[CGIスクリプト]]に渡します。この時、元々の [[URL]] から直接導き出される値を設定しなければならないわけではなく、 実装と設定に応じて適当に書き換えた値であっても構いません。 複数の [[path]] が特定の [[CGIスクリプト]]に対応付けされているような場合に、 元々の [[URL]] を使ってもいいですし、正規形にした [[URL]] を使ってもいいですし、 その他適当な方法で導かれた [[URL]] を使っても良いのです。 [SRC[>>9]] [10] いずれにせよ、 [[Script-URI]] は、それにアクセスすると同じ [CODE(CGI)@en[[[SCRIPT_NAME]]]], [CODE(CGI)@en[[[PATH_INFO]]]], [CODE(CGI)@en[[[QUERY_STRING]]]] で同じ[[CGIスクリプト]]が実行されるようなもの [WEAK[(になるよう変形されているの)]] で[['''なければなりません''']]。 [SRC[>>9]]