平成25年度 春期 ITパスポート試験 公開問題 問77 解説 Webページ生成技術
Web ページの来訪者数カウンタなどのように,訪問者が訪れるごとに新たなペー ジを生成する機能を実現できる仕組みはどれか。
- ア CGI ✓ 正答
- イ cookie
- ウ HTML
- エ SQL
解説
この問題は、Webページが動的に生成される仕組みについて問われています。訪問者が訪れるごとに内容が変化するページ(来訪者数カウンタなど)は、サーバー側でプログラムが実行され、その結果がWebページとして利用者に返されることで実現されます。
この機能を実現できる仕組みを選ぶには、各選択肢がどのような役割を持つかを知ることが重要です。
- ア CGI(Common Gateway Interface) は、Webサーバーと外部プログラム(スクリプト)が連携するためのインターフェースの仕様です。CGIを利用することで、Webサーバーはクライアントからのリクエストに応じてプログラムを実行し、その実行結果を動的なWebページとしてクライアントに返すことができます。まさに「訪問者が訪れるごとに新たなページを生成する」機能を実現するためのものです。
- イ cookie(クッキー) は、Webサイト側がユーザーのWebブラウザに保存させる小さな情報のことです。ユーザーIDや設定などを記憶するために使われますが、直接Webページを生成する機能はありません。
- ウ HTML(HyperText Markup Language) は、Webページの構造や内容を記述するためのマークアップ言語です。静的なテキストや画像を配置するのには適していますが、訪問者のアクションに応じて内容を動的に変化させる機能は持ちません。
- エ SQL(Structured Query Language) は、データベースを操作するための言語です。データの検索、追加、更新、削除などを行う際に使われますが、それ自体がWebページを生成する仕組みではありません。CGIプログラムなどがデータベースから情報を取得する際にSQLを利用することはあります。
したがって、訪問者が訪れるごとに新たなページを生成する機能を実現できるのは、プログラムを実行して動的にコンテンツを生成する「ア CGI」です。
CGIとは何か
CGI(Common Gateway Interface)は、Webサーバーが外部プログラムと連携するための標準的な仕組みです。これにより、Webサーバーは単純な静的ファイルを配信するだけでなく、クライアントからのリクエストに応じてプログラムを実行し、その結果を動的なコンテンツとしてユーザーに提供できるようになります。
例えば、Webサイトのアクセスカウンタを考えてみましょう。
- ユーザーがWebページにアクセスします。
- Webサーバーは、そのページの一部にCGIスクリプトの実行が指定されていることを検知します。
- Webサーバーは、指定されたCGIスクリプト(例えばPerlやPythonなどで書かれたプログラム)を実行します。
- CGIスクリプトは、アクセス数を記録しているファイルやデータベースを読み込み、カウントを1つ増やし、新しいカウント数をWebページの一部として出力します。
- Webサーバーは、CGIスクリプトから受け取った結果をWebページ全体に組み込み、最終的なHTMLコンテンツとしてユーザーのブラウザに送信します。
このようにして、訪問者数が増えるたびに、その時点での正確なカウント数が表示される動的なページが生成されるわけです。
Web技術におけるCGIの役割と重要性
CGIは、Webが単なる情報閲覧ツールから、対話的で動的なアプリケーションプラットフォームへと進化する上で不可欠な役割を果たしました。初期のWebサイトでは、掲示板、検索フォーム、アンケート、オンラインストアのカート機能など、ユーザーの入力に応じた処理や、アクセスごとに内容が変化する機能の多くがCGIによって実現されていました。
現代では、CGIという言葉を直接耳にする機会は減ったかもしれません。しかし、その概念はPHP、PythonのDjangoやFlask、Ruby on Rails、Node.jsなどのモダンなWebアプリケーションフレームワークの基盤として受け継がれています。これらのフレームワークも、突き詰めればWebサーバーからのリクエストを受けてプログラムを実行し、動的なレスポンスを生成するというCGIと同じ原理で動作しています。
ITパスポート試験においてこの問題が出題されるのは、Webサイトがどのようにして動的な情報を提供しているのか、その基本的な仕組みを理解しているかを確認するためです。クライアント(ブラウザ)とサーバー、そしてサーバー側のプログラムがどのように連携して「動的なWebページ」を作り上げているか、その概念を掴むことが重要となります。