Skip to the content.

最終更新日:2026年7月25日

まず結論

CGIとは、Webサーバが外部プログラムを呼び出し、その処理結果をブラウザへ返すための仕組みです。

CGIは、Common Gateway Interface の略です。

基本情報技術者試験では、次のように判断すると選択肢を切りやすくなります。

用語 何を表す? 判断の合図
CGI Webサーバと外部プログラムを連携させる仕組み 外部プログラムを実行、結果をブラウザへ返す
Web API Web経由で他のプログラムに機能やデータを提供する窓口 API、JSON、データ連携、サービス間連携
HTML Webページの構造を書く言語 タグ、見出し、リンク、画面表示
MIME データの種類を示す仕組み Content-Type、画像、PDF、メール添付
URL Web上の資源の場所 アドレス、リソースの位置

問題文に 「Webサーバ」+「外部プログラムを実行」+「結果をブラウザに返す」 が出たら、CGIを疑います。

直感的な説明

CGIは、Webサーバが外部の処理係に仕事をお願いする仕組みです。

静的なHTMLだけなら、Webサーバは用意されたページをそのまま返せば十分です。

ブラウザ
↓ リクエスト
Webサーバ
↓
HTMLを返す

一方、入力内容によって結果を変えるページでは、何らかのプログラムで処理する必要があります。

ブラウザ
↓ 入力内容を送る
Webサーバ
↓ 外部プログラムを呼び出す
CGIプログラム
↓ 処理結果を返す
Webサーバ
↓
ブラウザに表示する

つまり、CGIは Webサーバと外部プログラムの橋渡し と考えると分かりやすいです。

定義・仕組み

CGIは、Webサーバが外部プログラムを起動し、リクエスト内容を渡して、処理結果を受け取り、ブラウザへ返すための標準的な仕組みです。

フォーム入力、検索、掲示板、アクセスカウンタなど、利用者の操作に応じて表示内容を変える動的なWebページで使われてきました。

CGIの流れは次のとおりです。

  1. ブラウザがWebサーバへリクエストを送る
  2. Webサーバが必要に応じて外部プログラムを起動する
  3. 外部プログラムが入力内容を処理する
  4. 外部プログラムがHTMLなどの結果を返す
  5. Webサーバがブラウザへレスポンスを返す

ただし、CGIはリクエストごとに外部プログラムを起動するため、処理効率が課題になることがあります。

そのため、現在のWebアプリケーションでは、FastCGI、アプリケーションサーバ、Webフレームワークなどの仕組みが使われることも多いです。

このテーマは、基本情報技術者試験の「ネットワーク」や「Webの仕組み」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

Web APIとの違い

CGIとWeb APIは、どちらもWebサーバやプログラムの連携に関係するので混同しやすいです。

切り分けの中心は、誰に向けて結果を返すか です。

用語 主な相手 返すもののイメージ 判断の合図
CGI ブラウザで見る利用者 HTMLなどの画面表示 外部プログラムを実行して、結果をブラウザへ返す
Web API 他のプログラムやサービス JSON、XMLなどのデータ API、データ取得、サービス連携、プログラムから呼び出す

例えば、問い合わせフォームで入力内容を処理し、結果ページをブラウザに返すならCGIの文脈です。

利用者がフォーム送信
→ Webサーバが外部プログラムを実行
→ 結果ページをブラウザに返す
→ CGI

一方、天気アプリがサーバから天気データを取得するような場面はWeb APIの文脈です。

アプリがURLを呼び出す
→ サーバがJSONデータを返す
→ アプリが画面に表示する
→ Web API

つまり、試験では次のように見ます。

Webサーバが外部プログラムを呼び出す仕組み
→ CGI

Web経由で機能やデータを利用する窓口
→ Web API

選択肢にAPIがあっても、問題文が 「Webサーバと外部プログラムを連携させる仕組み」 を聞いているなら、CGIを選びます。

科目Aでどう出る?

科目Aでは、Web関連用語の説明を選ぶ問題として出題されやすいです。

判断するときは、次の表で切ります。

問題文の表現 選びたい用語
Webサーバから外部プログラムを呼び出し、処理結果を返す CGI
Webページの構造や文書を記述する HTML
データの種類を示す。Content-Type、メール添付、画像形式など MIME
Web上の資源の場所を示す URL
Web経由で他システムに機能やデータを提供する Web API
Webページの見た目を指定する CSS
Webページ上で動きを付ける JavaScript

代表的な選択肢は、次のように切り分けます。

選択肢 判断
CGI Webサーバと外部プログラムを連携させる仕組み
HTML Webページの構造を書く言語。外部プログラムを実行する仕組みではない
MIME データの種類を表す仕組み。Webサーバとプログラムの連携ではない
URL Web上の資源の場所。処理を実行する仕組みではない

問題文の 「アプリケーションプログラムを実行」 がCGIを選ぶ決め手です。

どんな場面で使う?

問題文では、CGIという用語そのものより、Webシステムの処理の流れを読む場面で役立ちます。

例えば、次のような流れです。

利用者がフォームを送信する
↓
Webサーバがリクエストを受け取る
↓
サーバ側のプログラムが処理する
↓
処理結果をブラウザへ返す

このとき、ブラウザ側だけで完結しているのではなく、サーバ側で処理していることを読み取ります。

また、Web APIが出てきた場合は、画面表示そのものよりも、アプリケーション間でデータをやり取りしているかを見ます。

画面を返す・ブラウザに表示する
→ CGIやWebアプリの文脈

データを返す・他システムが利用する
→ Web APIの文脈

よくある誤解・混同

CGIでは、次の混同がよく起こります。

混同 正しい切り分け
CGIとHTMLを同じだと思う HTMLはページを書く言語。CGIは外部プログラムを呼び出す仕組み
CGIとWeb APIを同じだと思う CGIはWebサーバから外部プログラムを実行する仕組み。Web APIはWeb経由で機能やデータを提供する窓口
CGIとURLを同じだと思う URLは資源の場所を示す文字列
MIMEをWebプログラム実行の仕組みだと思う MIMEはデータの種類を示す仕組み
CGIは現在のWeb開発で必ず主流だと思う 現在はアプリケーションサーバやWebフレームワークも多い

特に、CGIとWeb APIは次のように覚えると安全です。

CGI
→ Webサーバが外部プログラムを呼ぶ仕組み

Web API
→ 他のプログラムがWeb経由で機能やデータを使う窓口

試験では、呼び出す主体返すもの を見ると切り分けやすいです。

  • Webサーバが外部プログラムを呼ぶ → CGI
  • 他のアプリやシステムがデータを取りに行く → Web API

まとめ(試験直前用)

  • CGIは、Webサーバと外部プログラムを連携させる仕組み
  • 判断の合図は、外部プログラムを実行し、結果をブラウザへ返す
  • HTMLは、Webページの構造を書く言語
  • MIMEは、データの種類を示す仕組み
  • URLは、Web上の資源の場所を示す文字列
  • Web APIは、Web経由で機能やデータを提供する窓口
  • APIが選択肢にあっても、Webサーバが外部プログラムを呼ぶならCGI

© 2024-2026 stemtazoo. All rights reserved.