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

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

シー‐ジー‐アイ【CGI】

読み方:しーじーあい

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


CGI

【英】 Common Gateway Interface

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

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

関連用語

関連Webサイト


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



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Common_Gateway_Interface」の関連用語

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

   

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



Common_Gateway_Interfaceのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
PHPプロ!PHPプロ!
©COPYRIGHT ASIAL CORPORATION ALL RIGHTS RESERVED.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【CGI】の記事を利用しております。
拡張子辞典拡張子辞典
Copyright © 2005-2025 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-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 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.

©2025 GRAS Group, Inc.RSS