最終更新日:2026年8月25日
fe fe-technology network
まず結論
CGIとは、Webサーバが外部プログラムを呼び出し、その処理結果をブラウザへ返すための仕組みです。
CGIは、Common Gateway Interface の略です。
基本情報技術者試験では、Web関連用語を次のように切り分けると選択肢を消しやすくなります。
| 用語 | 何を表す? | 判断の合図 |
|---|---|---|
| CGI | Webサーバと外部プログラムを連携させる仕組み | 外部プログラムを実行、結果をブラウザへ返す |
| CSS | HTMLやXMLの表示方法を指定する仕組み | 見た目、文字色、配置、クライアント側で表示 |
| PHP | サーバ側で動的なWebページなどを生成するプログラミング言語 | サーバサイド、動的ページ |
| SSI | サーバ側でHTMLへ別の内容を差し込む仕組み | include、サーバ側でHTMLへ埋め込む |
| Web API | Web経由で他のプログラムに機能やデータを提供する窓口 | API、JSON、データ連携、サービス間連携 |
| HTML | Webページの構造を書く言語 | タグ、見出し、リンク |
特に試験では、次の4つを短く覚えると便利です。
見た目・表示
→ CSS
Webサーバが外部プログラムを呼ぶ
→ CGI
サーバ側で動的ページを作る言語
→ PHP
サーバ側でHTMLに内容を差し込む
→ SSI
直感的な説明
Webページを「画面を作る仕事」と「サーバ側で処理する仕事」に分けて考えると分かりやすくなります。
ブラウザ側
HTML → ページの構造
CSS → 見た目・レイアウト
サーバ側
CGI → 外部プログラムを呼び出す仕組み
PHP → 動的なページを作るプログラミング言語
SSI → HTMLに内容を差し込む仕組み
CGIは、Webサーバが外部の処理係に仕事をお願いする仕組みです。
ブラウザ
↓ 入力内容を送る
Webサーバ
↓ 外部プログラムを呼び出す
CGIプログラム
↓ 処理結果を返す
Webサーバ
↓
ブラウザに表示する
つまり、CGIは Webサーバと外部プログラムの橋渡し と考えると分かりやすいです。
定義・仕組み
CGIは、Webサーバが外部プログラムを起動し、リクエスト内容を渡して、処理結果を受け取り、ブラウザへ返すための標準的な仕組みです。
フォーム入力、検索、掲示板、アクセスカウンタなど、利用者の操作に応じて表示内容を変える動的なWebページで使われてきました。
CGIの流れは次のとおりです。
- ブラウザがWebサーバへリクエストを送る
- Webサーバが必要に応じて外部プログラムを起動する
- 外部プログラムが入力内容を処理する
- 外部プログラムがHTMLなどの結果を返す
- Webサーバがブラウザへレスポンスを返す
ただし、CGIはリクエストごとに外部プログラムを起動するため、処理効率が課題になることがあります。
現在のWebアプリケーションでは、FastCGI、アプリケーションサーバ、Webフレームワークなどの仕組みが使われることも多いです。
このテーマは、基本情報技術者試験の「ネットワーク」や「Webの仕組み」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
CSS・CGI・PHP・SSIの違い
この4つは同じWeb分野に出てきますが、役割はかなり違います。
| 用語 | 主に処理する場所 | 役割 | 試験でのキーワード |
|---|---|---|---|
| CSS | クライアント側 | HTMLやXMLの表示方法を指定する | 表示、スタイル、色、配置 |
| CGI | サーバ側 | Webサーバと外部プログラムを連携させる | 外部プログラム、実行、結果を返す |
| PHP | サーバ側 | プログラムで動的なWebページを生成する | サーバサイド、動的Webページ |
| SSI | サーバ側 | HTMLに別ファイルや実行結果などを差し込む | include、埋め込み、Server Side Includes |
CSS
CSS(Cascading Style Sheets)は、HTMLやXMLの要素を どのように表示するか を指定します。
HTML
→ 「これは見出し」
CSS
→ 「その見出しを大きくして中央に表示」
問題文に 「表示方法」「スタイル」「クライアント側で処理」 があれば、CSSを疑います。
CGI
CGIはプログラミング言語そのものではありません。
Webサーバ
→ 外部プログラムを呼び出す
→ 処理結果を受け取る
という 連携方法・インタフェース です。
PHP
PHPは、サーバ側で実行されるプログラミング言語です。
フォームの入力内容やデータベースの内容に応じて、表示するHTMLを変えるような処理に利用できます。
試験では、「サーバサイドのスクリプト言語」 が重要な判断語です。
なお、PHPは現在、公式には PHP: Hypertext Preprocessor と表記されます。「Personal Home Page」は初期の名称に由来する歴史的な説明なので、現在の正式な展開として覚えないようにします。
SSI
SSI(Server Side Includes)は、WebサーバがHTMLを返す前に、HTML内の指示を処理して別の内容を差し込む仕組みです。
HTML
↓
サーバでSSIを処理
↓
共通ヘッダーなどを差し込む
↓
完成したHTMLをブラウザへ返す
「Server Side」という名前のとおり、ブラウザ側の表示指定ではありません。
Web APIとの違い
CGIとWeb APIは、どちらもWebサーバやプログラムの連携に関係するので混同しやすいです。
切り分けの中心は、何をする仕組みか です。
| 用語 | 主な役割 | 判断の合図 |
|---|---|---|
| CGI | Webサーバから外部プログラムを呼び出す | 外部プログラムを実行 |
| Web API | 他のプログラムへWeb経由で機能やデータを提供する | API、JSON、サービス連携 |
例えば、問い合わせフォームを送信して外部プログラムで処理するならCGIの文脈です。
利用者がフォーム送信
→ Webサーバが外部プログラムを実行
→ 結果ページをブラウザに返す
→ CGI
一方、天気アプリがサーバから天気データを取得するような場面はWeb APIの文脈です。
アプリがAPIを呼び出す
→ サーバがJSONなどのデータを返す
→ アプリが利用する
→ Web API
科目Aでどう出る?
科目Aでは、Web関連用語の説明を選ぶ問題として出題されます。
判断するときは、次の表で切ります。
| 問題文の表現 | 選びたい用語 |
|---|---|
| HTMLやXMLの要素をどのように表示するかを指定 | CSS |
| Webサーバから外部プログラムを呼び出し、処理結果を返す | CGI |
| サーバ側で動的なWebページを生成するプログラミング言語 | PHP |
| サーバ側でHTMLへ別の内容を差し込む | SSI |
| Webページの構造や文書を記述する | HTML |
| Web経由で他システムに機能やデータを提供する | Web API |
特に、次の対比は頻出の切り分けとして覚えておきます。
「表示する」
→ CSS
「外部プログラムを呼び出す」
→ CGI
「サーバ側のプログラミング言語」
→ PHP
「サーバ側でHTMLに差し込む」
→ SSI
どんな場面で使う?
Web関連の問題では、まず ブラウザ側の仕事か、サーバ側の仕事か を確認すると選択肢を切りやすくなります。
ブラウザ側
├─ HTML:構造
└─ CSS:見た目
サーバ側
├─ CGI:外部プログラムとの連携
├─ PHP:プログラムによる動的処理
└─ SSI:HTMLへの内容の差し込み
この切り分けをしてから細かな役割を見ると、用語を丸暗記するより判断しやすくなります。
よくある誤解・混同
| よくある混同 | 正しい切り分け |
|---|---|
| CSSをサーバ側のプログラムだと思う | CSSは表示方法を指定し、基本的にはブラウザが解釈する |
| CGIをプログラミング言語だと思う | CGIはWebサーバと外部プログラムの連携方法 |
| PHPとCGIを同じものだと思う | PHPは言語、CGIは外部プログラムとの連携方法 |
| SSIをCSSのような表示指定だと思う | SSIはサーバ側でHTMLへ内容を差し込む仕組み |
| PHPを現在も「Personal Home Page」の略と覚える | 現在の公式表記は PHP: Hypertext Preprocessor |
試験では、「どこで処理するか」+「何をするか」 を見るのがコツです。
クライアント側 + 見た目
→ CSS
サーバ側 + 外部プログラム呼び出し
→ CGI
サーバ側 + 動的ページを作る言語
→ PHP
サーバ側 + HTMLに内容を差し込む
→ SSI
まとめ(試験直前用)
- CSS:HTML/XMLの 表示方法 を指定する
- CGI:Webサーバと 外部プログラムを連携 させる
- PHP:サーバ側で動く プログラミング言語
- SSI:サーバ側でHTMLに 内容を差し込む
- HTML:Webページの 構造 を記述する
- 迷ったら「ブラウザ側かサーバ側か」「表示か処理か」で切り分ける