基本情報技術者 2016年 秋期 午前(科目A) 問13
問題文
3層クライアントサーバシステム構成で実現したWebシステムの特徴として、適切なものはどれか。
選択肢
ア:HTMLで記述されたプログラムをサーバ側で動作させ、クライアントソフトはその結果を画面に表示する。(正解)
イ:業務処理の変更のたびに、Webシステムを動作させるための業務処理用アプリケーションをクライアント端末に送付し、インストールする必要がある。
ウ:業務処理はサーバ側で実行し、クライアントソフトはHTMLの記述に従って、その結果を画面に表示する。
エ:クライアント端末には、サーバ側からのHTTP要求を待ち受けるサービスを常駐させておく必要がある。
3層クライアントサーバシステム構成で実現したWebシステムの特徴【午前2 解説】
要点まとめ
- 結論:Webの3層構成では業務処理(アプリケーション層)をサーバで実行し、クライアントは生成された表示データを描画する役割を担います。
- 根拠:サーバ側で動作するプログラムがHTMLを生成し、ブラウザなどのクライアントがそのHTMLを受け取ってレンダリングする点が基本動作です。
- 差がつくポイント:HTMLは表示用マークアップであり業務ロジックではない点、クライアントに業務アプリを配付・常駐させる必要はない点を明確に区別しましょう。
正解の理由
ア の記述は「サーバ側でプログラムを動かして結果(HTML)をクライアントに送り、クライアントはその結果を表示する」と解釈でき、典型的なWeb(3層)構成の動作を表しています。
3層ではプレゼンテーション層(ブラウザ)、アプリケーション層(Web/APサーバ)、データ層(DBサーバ)が分離され、業務処理は主にアプリケーション層で行われます。サーバがHTMLを生成し、クライアントはそれを描画するという記述はこの原則に合致します。
3層ではプレゼンテーション層(ブラウザ)、アプリケーション層(Web/APサーバ)、データ層(DBサーバ)が分離され、業務処理は主にアプリケーション層で行われます。サーバがHTMLを生成し、クライアントはそれを描画するという記述はこの原則に合致します。
よくある誤解
- HTMLは「プログラム」だと考える誤解:HTMLは表示マークアップであり、業務ロジックはサーバ側のスクリプト(PHP、Java、ASP等)に置かれることが多いです。
- クライアントに業務アプリを配布・インストールする必要があると思い込む:Web方式の利点は中央で更新すれば全端末で即時反映できる点です。
- クライアントがサーバのHTTP要求を受け付ける必要があるという誤解:通常クライアントはHTTPクライアント(ブラウザ)であり、サーバからの要求待ち受けは不要です。
解法ステップ
- 「3層クライアントサーバ」「Webシステム」の意味を確認し、各層の役割(表示・業務・データ)を想起する。
- 選択肢ごとに「業務処理がどこで実行されるか」「クライアントに何が必要か」を当てはめる。
- Web方式の特徴(サーバ側でロジック、クライアントはHTML表示)と合致する選択肢を選ぶ。
- 明らかにサーバ集中管理と矛盾する記述(クライアント毎のインストールや常駐サービス要求)は誤りとする。
選択肢別の誤答解説
- ア: 正解。サーバ側で生成したHTML(=表示結果)をクライアントが表示する典型的なWebの挙動を表現しています。
- イ: 誤り。業務処理の変更ごとにクライアントへアプリを配布・インストールする必要があるのは2層(fat client)に近い形で、Web(3層)の利点と矛盾します。
- ウ: 誤りに見えるが紛らわしい。表現としては業務処理がサーバ側で実行されクライアントが結果を表示する点は正しいものの、「クライアントソフトはHTMLの記述に従って」という書き方が、HTML自体が業務処理を記述するかのように誤解されやすく曖昧です。試験上はより明確にWebの表示役割を表したアが正解になります。
- エ: 誤り。クライアント端末がサーバからのHTTP要求を待ち受ける必要は通常なく、クライアントはブラウザ等からサーバへ要求を送る立場です。サーバ側にHTTPサーバがあり、クライアントはHTTPクライアントです。
補足コラム
Webアーキテクチャで「HTML」は主にプレゼンテーション(表示)を記述する言語です。業務ロジックはサーバサイドで実装され、サーバはその結果をHTMLやJSONなどで返します。クライアント側で追加のロジック(インタラクティブ性)はJavaScriptで実装されますが、これはあくまで表示やユーザー操作の補助であり、業務処理の中核はサーバで処理されるのが3層の特徴です。3層化の利点は可用性・拡張性・保守性の向上であり、典型的な実装例としてLAMPやJava EEスタックがあります。
FAQ
Q1: HTMLとサーバサイドスクリプトの違いは何ですか?
A1: HTMLは表示用のマークアップ、サーバサイドスクリプト(PHP、Java、Python等)は業務ロジックを実行してHTMLを生成する役割を持ちます。
A1: HTMLは表示用のマークアップ、サーバサイドスクリプト(PHP、Java、Python等)は業務ロジックを実行してHTMLを生成する役割を持ちます。
Q2: Webシステムではクライアントに何もインストール不要ですか?
A2: 基本的にブラウザがあれば動作します。特殊なリッチクライアントやプラグインを使う場合は別ですが、一般的な3層Webではサーバ集中で更新できます。
A2: 基本的にブラウザがあれば動作します。特殊なリッチクライアントやプラグインを使う場合は別ですが、一般的な3層Webではサーバ集中で更新できます。
Q3: クライアントが常駐サービスでサーバからの要求を待つ必要はありますか?
A3: いいえ。通常はサーバが待ち受け(HTTPサーバ)し、クライアントから要求を送って応答を受け取る方式です。プッシュ通知等は別技術(WebSocketやPush)を用います。
A3: いいえ。通常はサーバが待ち受け(HTTPサーバ)し、クライアントから要求を送って応答を受け取る方式です。プッシュ通知等は別技術(WebSocketやPush)を用います。
関連キーワード: 3層アーキテクチャ、クライアントサーバ、プレゼンテーション層、アプリケーション層、データ層、HTML、HTTP、サーバサイドスクリプト、ブラウザ、Webアーキテクチャ

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

