最終更新日:2026年7月25日
fe fe-technology network
まず結論
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の流れは次のとおりです。
- ブラウザがWebサーバへリクエストを送る
- Webサーバが必要に応じて外部プログラムを起動する
- 外部プログラムが入力内容を処理する
- 外部プログラムがHTMLなどの結果を返す
- 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