* 仕様書 [REFS[ - [3] [CITE@en[RFC 3875 - The Common Gateway Interface (CGI) Version 1.1]] ([TIME[2011-11-20 06:09:05 +09:00]] 版) ]REFS] * 定義 ** HTTP における定義 [FIG(quotation)[ [1] > :server: An application program that accepts connections in order to service requests by sending back responses. Any given program may be capable of being both a client and a server; our use of these terms refers only to the role being performed by the program for a particular connection, rather than to the program's capabilities in general. Likewise, any server may act as an origin server, proxy, gateway, or tunnel, switching behavior based on the nature of each request. > :サーバー: [[応答]]を送り返すことで[[要求]]を service するために[[接続]]を受け入れる応用プログラム。 任意のプログラムが[[クライアント]]と[[サーバー]]のどちらにもなることができます。これらの用語を使用するときには、一般的なそのプログラムの能力ではなく、特定の接続についてのプログラムの施す役割にのみ言及します。同様に、サーバーは各要求の性質による動作の切り替えで[[起源サーバー]]、[[串]]、[[関門]]あるいは[[トンネル]]として動作するかもしれません。 [FIGCAPTION[ [[HTTP]] ([[RFC1945]] 1.2, [[RFC2068]] 1.3, [[RFC2616]] 1.3) ]FIGCAPTION] ]FIG] ** CGI における定義 [FIG(quotation)[ [2] > :'server': The application program that invokes the script in order to service requests from the client. > :[DFN[[RUBYB[鯖]@en[server]]]]: [[クライアント]]からの[[要求]]に対して[[サービス]]を提供するため[[スクリプト]]を呼び出す[[応用プログラム]]。 [FIGCAPTION[ [CITE@en[RFC 3875 - The Common Gateway Interface (CGI) Version 1.1]] ([TIME[2011-11-20 06:09:05 +09:00]] 版) ]FIGCAPTION] ]FIG] * CGI に関する要件 [4] [[CGI]] に関して、[[クライアント]]からの[[要求]]を [[CGIスクリプト]]に伝達するに当たり、 [[プロトコル]]や[[トランスポート層]]の[[認証]]、[[セキュリティー]]を実装するのは[[鯖]]の責任です。 更にそれ以上のデータ型やプロトコルの変換などを行なっても構いません。 [SRC[>>3]] [5] [[鯖]]は [[CGI]] の仕様に従って[[クライアント]]の[[要求]]を変換して [[CGIスクリプト]]に提供しなければ[['''なりません''']]。逆に[[CGIスクリプト]]の結果を、 たとえそれが [[CGI]] の仕様に適合しなかったとしても、 関係する[[プロトコル]]に適合するよう変形する必要があります。 [SRC[>>3]] [6] [[鯖]]が[[認証]]を適用する場合にあっては、[[要求]]がそれをすべて通過しない限り [[CGIスクリプト]]を実行しては[['''なりません''']]。 [SRC[>>3]]