ITパスポート 2013年 春期 問77
問題文
Webページの来訪者数カウンタなどのように、訪問者が訪れるごとに新たなページを生成する機能を実現できる仕組みはどれか。
選択肢
ア:CGI(正解)
イ:cookie
ウ:HTML
エ:SQL
🔒 解説は解答すると表示されます
Webページの来訪者数カウンタなどのように、訪問者が訪れるごとに新たなページを生成する機能を実現できる仕組みはどれか。【ITパスポート 解説】
正解の理由
正解は選択肢 ア の CGI です。
CGI(Common Gateway Interface:ウェブサーバと外部プログラムをつなぐ仕組み)は、ブラウザからのリクエストを受けてサーバ側でプログラムを実行し、その結果として新しい HTML ページを動的に作成して返すことができます。来訪者数カウンタでは、訪問のたびにプログラム側でカウントを増やし、その値を反映したページを生成して返すため、まさに CGI の役割に当てはまります。
CGI(Common Gateway Interface:ウェブサーバと外部プログラムをつなぐ仕組み)は、ブラウザからのリクエストを受けてサーバ側でプログラムを実行し、その結果として新しい HTML ページを動的に作成して返すことができます。来訪者数カウンタでは、訪問のたびにプログラム側でカウントを増やし、その値を反映したページを生成して返すため、まさに CGI の役割に当てはまります。
- 「新たなページを生成する」=サーバ側で処理して応答を作る、という動作が必要。
- CGI はそのための典型的な仕組みです。
解法ステップ
- 問題文のキーワードを確認:「訪問者が訪れるごとに新たなページを生成する」=動的にページを作る仕組みを探す。
- 各選択肢の役割を短く思い出す:
- CGI(ウェブサーバと外部プログラムをつなぐ仕組み)→ サーバでプログラム実行、動的ページ生成が可能
- cookie(ウェブブラウザに保存される小さなデータ)→ クライアント側に情報を保持
- HTML(HyperText Markup Language:ウェブページを記述する言語)→ ページの構造・表示を記述(静的)
- SQL(Structured Query Language:データベースを操作する言語)→ データの検索・更新を行う言語(表示はしない)
- 「動的にページを作る」という条件に合うものはサーバ側でプログラムを動かせる仕組み、すなわち ア(CGI)と判断する。
選択肢別の誤答解説
- ア:CGI(Common Gateway Interface:ウェブサーバと外部プログラムをつなぐ仕組み)
→ 正解。リクエストごとにプログラムを実行して、動的な HTML を生成できる。カウンタの保存先(ファイルやデータベース)に値を書き込み、現在の値を埋め込んだページを返す、といった実装が可能。 - イ:cookie(ブラウザに保存される小さなデータ)
→ 誤り。cookie はユーザの端末(クライアント)に短い情報を保存する仕組みです。訪問者の識別や設定の保存には使えますが、「サーバ側で新しくページを生成する」機能そのものではありません。 - ウ:HTML(HyperText Markup Language:ウェブページを記述する言語)
→ 誤り。HTML はページの構造や表示を記す言語で、単体では訪問ごとの処理やカウント更新などの「動的処理」はできません。サーバ側の処理やスクリプトと組み合わせる必要があります。 - エ:SQL(Structured Query Language:データベースを操作する言語)
→ 誤り。SQL はデータベースへの問い合わせや更新を行う言語です。カウンタの値を保存・取得するために使えますが、SQL 自体がウェブページを生成するわけではありません。ページ生成はサーバ側プログラム(例:CGI)が行います。
よくある誤解
- 「cookie があれば訪問者ごとにページを作れる」
→ cookie は訪問者の情報を端末に保存するだけです。ページの生成やサーバ上のカウント更新はできません。 - 「HTML が動的ページを作る言語だ」
→ HTML は表示のための言語で、動的に値を変えるにはサーバ側(CGI/PHPなど)やクライアント側のスクリプト(JavaScript)との連携が必要です。 - 「SQL がそのままページを返す」
→ SQL はデータ操作言語です。データを取ってきた後に、その結果を HTML に組み立てて返すのはサーバプログラムの役割です。
補足コラム
近年は CGI の代わりに、より便利な仕組みやフレームワークがよく使われます。たとえば:
- PHP(サーバサイドスクリプト):HTML に埋め込んで動的ページを作ることが多い。
- Python の WSGI(Web Server Gateway Interface):CGI の後継的な役割を果たすサーバとの接続方式。
- Node.js(サーバ上で JavaScript を動かす環境):非同期処理を得意とし、動的サイトでよく使われる。
これらも「サーバ側で処理して動的なページを返す」点では CGI と同じ目的を果たします。来訪者数カウンタの実装パターンは主に次のどれかです: - ファイルに数値を書き込む(簡単だが同時アクセスに弱い)
- データベースに保存する(堅牢、安全) — このとき SQL はデータ操作に使う
- クラウドのデータストアやキャッシュを使う(高速)
簡単なイメージ(擬似コード、Python 風):
# 受け取ったリクエストでカウントを増やし、HTML を返すイメージ
count = read_count_from_db() # SQL を使って値を取得
count += 1
write_count_to_db(count) # SQL で更新
html = f"<html><body>訪問者数: {count} 回</body></html>"
return_html_response(html) # サーバが返す
この一連の処理を呼び出す仕組みが CGI や他のサーバサイド技術です。
FAQ
Q1: cookie を使えばカウンタは作れませんか?
A1: cookie はユーザごとに情報を保存できますが、全体の訪問者数(サイト全体のカウント)を正確に管理するにはサーバ側で集計する必要があります。cookie は重複訪問の判定などの補助には使えます。
A1: cookie はユーザごとに情報を保存できますが、全体の訪問者数(サイト全体のカウント)を正確に管理するにはサーバ側で集計する必要があります。cookie は重複訪問の判定などの補助には使えます。
Q2: CGI は今でも使われていますか?
A2: はい。ただし、古い方式の CGI は性能面での問題があり、より高性能なフレームワークや仕組み(PHP、WSGI、Node.js など)がよく使われます。役割(サーバで処理して応答を作る)は同じです。
A2: はい。ただし、古い方式の CGI は性能面での問題があり、より高性能なフレームワークや仕組み(PHP、WSGI、Node.js など)がよく使われます。役割(サーバで処理して応答を作る)は同じです。
Q3: SQL を知らないとカウンタは組めませんか?
A3: データベースを使うなら SQL の基本は役立ちますが、ファイルベースの簡単な実装も可能です。実務的にはデータベース+SQL の組み合わせが多いです。
A3: データベースを使うなら SQL の基本は役立ちますが、ファイルベースの簡単な実装も可能です。実務的にはデータベース+SQL の組み合わせが多いです。
関連キーワード: 動的ページ生成、サーバサイド、クライアントサイド、HTTP、カウンタ、ウェブプログラミング、CGI、cookie、HTML、SQL、データベース

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

