戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2018年 春期 午前(科目A)35


問題文

Webサーバにおいて、クライアントからの要求に応じてアプリケーションプログラムを実行して、その結果をWebブラウザに返すなどのインタラクティブなページを実現するために、Webサーバと外部プログラムを連携させる仕組みはどれか。

選択肢

CGI(正解)
HTML
MIME
URL

🔒 解説は解答すると表示されます

CGIによるWeb連携【午前解説】

正解の理由

正解: CGI
CGIは「Common Gateway Interface」の略で、Webサーバが外部プログラム(スクリプトやバイナリ)を呼び出して標準出力に書き出された内容をHTTPレスポンスとしてクライアントに返すための取り決めです。要求情報は環境変数(例:REQUEST_METHOD, QUERY_STRING, CONTENT_LENGTH など)や標準入力で渡され、プログラムはHTTPヘッダを含む出力を返します。問題文の「クライアントからの要求に応じてアプリケーションプログラムを実行して、その結果をWebブラウザに返す」という説明に完全に一致します。

解法ステップ

  1. 問題文のキーワードを見つける:「外部プログラム」「実行」「結果をWebブラウザに返す」「Webサーバと連携」。
  2. 選択肢を照らし合わせる:CGIは「Webサーバが外部プログラムを実行して結果を返す」仕組みであるとすぐに一致します。
  3. 他の選択肢の役割を確認する:HTMLはマークアップ、MIMEはデータ種別、URLは識別子であり問題文の条件に合致しないと判断します。
  4. 正答を選ぶ:CGI(ア)。

選択肢別の誤答解説

  • ア: CGI — 正解。Webサーバが外部プログラムを呼び出して標準出力で結果を返す仕様で、問題文に該当します。
  • イ: HTML — 誤り。HTMLはハイパーテキスト文書の記述言語であり、サーバと外部プログラムの連携を定める仕組みではありません。
  • ウ: MIME — 誤り。MIMEはメールやHTTPで使うデータの種類(Content-Type)を示す規格で、プログラムの実行や連携機構ではありません。
  • エ: URL — 誤り。URLはリソースの場所や識別を示す文字列であり、外部プログラムを実行するための仕組みではありません。

よくある誤解

  • HTMLを選んでしまう: HTMLはクライアント側の文書マークアップ言語であり、サーバ側で外部プログラムを実行する仕組みではありません。
  • MIMEと混同する: MIMEはコンテンツの種類(Content-Type)を示すための規格で、実行・連携の仕組みではない点を誤認しやすいです。
  • URLは実行命令と考える誤り: URLはリソースの識別子であって、サーバでプログラムを起動する機構そのものではありません。

補足コラム

  • CGIの動作イメージ: Webサーバはリクエストを受け取ると対象ファイルがCGIスクリプトならそのプログラムを起動し、環境変数や標準入力でデータを渡して標準出力をHTTPレスポンスとして返します。
  • パフォーマンス留意点: 伝統的なCGIはリクエストごとにプロセスを生成するためオーバーヘッドが大きいです。これを改善するためにFastCGIやアプリケーションサーバ(例: uWSGI、PHP-FPM)やWebサーバモジュール(mod_phpなど)が利用されます。
  • セキュリティと配置: CGIスクリプトは実行権限と適切な配置(例: cgi-bin)設定、入力検証を行わないとリスクが高くなります。
  • 簡単なPythonのCGI例:
#!/usr/bin/env python3
import os
import sys

# 標準出力にHTTPヘッダと本文を出力
print("Content-Type: text/html; charset=utf-8")
print()
print("<html><body><h1>CGI動作確認</h1>")
print("<p>REQUEST_METHOD = {}</p>".format(os.environ.get("REQUEST_METHOD")))
print("</body></html>")

FAQ

Q: CGIとFastCGIの違いは何ですか?
A: CGIはリクエストごとにプロセスを生成しますが、FastCGIはプロセスを常駐させて複数リクエストを処理するためオーバーヘッドが小さいです。
Q: HTMLはサーバ側で実行されますか?
A: いいえ。HTMLはブラウザで解釈されるマークアップ言語で、単独ではサーバ側でプログラムを実行する機能はありません。
Q: MIMEはどのように使われますか?
A: MIME(Content-Type)はサーバがレスポンスのデータ種別(text/html, image/pngなど)を示すために使用します。実行機能はありません。
Q: CGIスクリプトはどこに置けばよいですか?
A: 多くの設定では「cgi-bin」など実行用ディレクトリに配置し、実行権限(chmod +x)を設定する必要があります。
Q: 現代的なWebアプリはCGIだけで構築しますか?
A: 性能や管理面から、現代ではFastCGI、アプリケーションサーバ、Webフレームワークなどを組み合わせることが一般的です。ただしCGIの仕組みの理解は基礎として重要です。

関連キーワード: CGI, FastCGI, cgi-bin, HTTPヘッダ, 環境変数, 標準出力, Webサーバ, Apache, Nginx, mod_php, PHP-FPM, スクリプト実行, MIME, URL, HTML
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について