Common_Gateway_Interfaceとは? わかりやすく解説

Weblio 辞書 > 固有名詞の種類 > 製品 > コンピュータ > ソフトウェア > Webサーバ > Common_Gateway_Interfaceの意味・解説 

シー‐ジー‐アイ【CGI】

読み方:しーじーあい

《common gateway interface》ブラウザーの要求に応じて、ウェブサーバーがプログラムや計算を実行するための仕組み。


CGI

【英】 Common Gateway Interface

Webブラウザの要求に対して、Webサーバーがプログラムを起動するための仕組み。Common Gateway Interfaceの略。CGIを利用することで、動的に文書を生成し送信することができる。Perl、PHP言語などが主流で使われているが、他にはRuby、Python、Java、C言語なども利用できる。

なおPHP言語はCGIとしての利用だけでなく、Webサーバー(例えばApache)などの組み込みモジュールとしても動作する。

関連用語

関連Webサイト


CGI

プログラミングのほかの用語一覧
スクリプト言語:  Ajax  アクティブスクリプト  イベントハンドラ  CGI  CPAN  ECMAScript  Gauche

.cgi

フルスペル:Common Gateway Interface
読み方:シージーアイ

.cgiとは、CGIと呼ばれる、Webブラウザからの要求に応じてWebサーバー上で実行されるプログラムに付く拡張子のことである。


Common Gateway Interface

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/06/28 20:26 UTC 版)

Common Gateway Interface(コモン・ゲートウェイ・インタフェース、CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。現存する多くのウェブサーバプログラムはCGIの機能を利用することができる。 [1][2][3]

ウェブサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者(クライアント)の要求に応じて送り返すことである。そのためサーバプログラム単体では情報をその場で動的に生成してクライアントに送信するような仕組みを作ることはできなかった。 そこでサーバプログラムから他のプログラムを呼び出し、その処理結果をクライアントに送信する方法が考案された。それを実現するためのサーバプログラムと外部プログラムとの連携法の取り決めが CGI である。

CGI は環境変数や標準入出力の扱えるプログラミング言語であれば、どの言語を用いても作成することができるが、主にPHP、Perl、Javaで作成されることが多い。

代表的なアプリケーションには、電子掲示板、アクセスカウンタ、ウィキやブログシステムなどがある。

仕様

CGI の仕様はNCSAにより最初に定義・実装(NCSA HTTPdにおいて)され、現在の最新版はCGI1.1である。2004年にRFC 3875となった。

CGI は、典型的には以下のような動作を期待される。CGIを経由して実行されるプログラムのことを、CGIプログラムと呼ぶ。

  • CGIプログラムはウェブサーバがクライアントからのリクエストに応じて起動する。
    典型的には、ウェブサーバの公開領域に置かれたプログラムに対応するURIへのリクエストがあると、サーバはそのCGIプログラムをCGIの取り決めに従って呼び出す。
  • CGIプログラムへの情報の入力は、コマンドライン引数、環境変数、標準入力によって行われる。
    • ウェブサーバがCGIプログラムを呼び出す時点でいくつかの環境変数を定義することが定められている。
    • 特に、クライアントがサーバに要求したURIのうち、検索文字列(Query String)部が環境変数 QUERY_STRING に設定されるので、これはHTMLフォームからGETメソッドで入力を受けるのに便利である。
    • QUERY_STRING に文字「=」が含まれない場合は、サーバは QUERY_STRING の内容をコマンドライン引数としてCGIプログラムに渡す。
    • クライアントからのHTTPリクエストのボディ部はCGIプログラム標準入力に流し込まれる。また、その入力の長さが環境変数 CONTENT_LENGTH に設定されている。これはHTMLフォームから POST メソッドで入力を受けるのに便利である。
    • CGIプログラムに対応する仮想パスの後に、更に余分のパスが続いた場合、その情報は環境変数 PATH_INFO に格納され PATH_INFO をウェブサーバの仮想パスと解釈した際に対応すべき物理パスが環境変数 PATH_TRANSLATED に格納される。この方式もまたCGIプログラムにユーザー側からパラメータを渡す目的でよく用いられる。
  • プログラムが標準出力に出力したデータは、ウェブサーバを経由してクライアントに送られる。このデータは正当なHTTPヘッダで始まらなければならない。
  • ただし、いくつかの特別なヘッダフィールドは「サーバディレクティブ」として解釈され、ウェブサーバの挙動(ステータスコードなど)に影響を与える。これ以外の全てのヘッダフィールドはそのままクライアントに送信される。

現在のウェブではHTMLが中心的な役割を果たしているので、CGIプログラムはHTMLを出力するケースが圧倒的に多い。

  • 画像データなどを出力することもある(これはアクセスカウンタなどを作る際に使われる)。

CGI以外の手法

近年では、ウェブサーバから外部のプログラムを呼び出すという負荷の大きい動作を避け、ウェブサーバの一部としてインタプリタを常時起動させておくことにより性能を向上させた mod_perlや、PSGI(Perl)、mod_php、FastCGI、WSGI(Python) などのインタフェース・実装が一般的である。

このため、比較的新しいウェブサーバアプリケーションでは、CGIを直接動作させる機能を持たないものも存在する。

  • Nginx: FCGI Wrapにより、FastCGIとして動作させる。
  • H2O: fastcgi-cgiにより、FastCGIとして動作させる。
  • OpenBSD httpd: slowcgiにより、FastCGIとして動作させる。

脚注

関連項目

参考文献


Common Gateway Interface (CGI)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/11 15:19 UTC 版)

「Webアプリケーションフレームワーク」の記事における「Common Gateway Interface (CGI)」の解説

World Wide Webの設計は元々ダイナミックなものではなく、初期のハイパーテキストは Webサーバ上で公開されたハードコードのHTMLでできていた。 公開されたページについての変更はページの作者が行う必要があった。ユーザーからの入力を反映したコンテンツを提供するため、Webサーバが外部のアプリケーションとやり取りするためのCommon Gateway Interface (CGI) 標準が導入された。CGIでは各リクエストが別々のプロセスを開始しなければならないため、サーバの負荷に悪い影響を与えることがある。

※この「Common Gateway Interface (CGI)」の解説は、「Webアプリケーションフレームワーク」の解説の一部です。
「Common Gateway Interface (CGI)」を含む「Webアプリケーションフレームワーク」の記事については、「Webアプリケーションフレームワーク」の概要を参照ください。

ウィキペディア小見出し辞書の「Common_Gateway_Interface」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ。

「Common Gateway Interface」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Common_Gateway_Interface」の関連用語

Common_Gateway_Interfaceのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Common_Gateway_Interfaceのページの著作権

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
PHPプロ!PHPプロ!
©COPYRIGHT ASIAL CORPORATION ALL RIGHTS RESERVED.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2026 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【CGI】の記事を利用しております。
拡張子辞典拡張子辞典
Copyright © 2005-2026 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【.cgi】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのCommon Gateway Interface (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのWebアプリケーションフレームワーク (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2026 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2026 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2026 GRAS Group, Inc.RSS