• このエントリーをはてなブックマークに追加

HTML5プロフェッショナル認定試験レベル2 サンプル問題

例題解説とその内容については、例題提供者の監修です。内容や試験問題に関わるお問い合わせにつきましては、LPI事務局ではお応えできませんのでご了承ください。
例題解説のご提供者さまを募集中です。LPI-Japan事務局までぜひご投稿ください。選ばれた方の例題解説は本サイトに掲載させていただきます。

2.6 通信

例題6.4「2.6.2 XMLHttpRequest」
レベル2の出題範囲「2.6.2 XMLHttpRequest」からの出題です。
XMLHttpRequestオブジェクトを使用して取得したデータをブラウザにキャッシュさせないための方法として適切なものを一つ選択しなさい。
  • XMLHttpRequestオブジェクトのnoCacheプロパティにtrueをセットする
  • アクセスするURLを毎回違う文字列にする
  • WindowオブジェクトのnoCacheプロパティにtrueをセットする
  • openメソッドの第5引数に{\'Cache-Control\':\'no-cache\'}を指定する

※この例題は実際のHTML5プロフェッショナル認定試験とは異なります。

答えはこちら

答え B
XMLHttpRequestを使用した非同期通信においても、Webブラウザのキャッシュ機能は適用されるため、繰り返しアクセスしてもキャッシュされたコンテンツしか取得できないケースがあります。Webブラウザのキャッシュを無効化する最も確実な方法は、毎回異なるURLでアクセスすることです。
XMLHttpRequestのopenメソッドで使用するURLについて、以下のように、最後に現在時刻を追加することでアクセスする毎に異なる文字列を生成することが出来ます。

var url = \'http://example.jp/\';
url += ((/\\?/).test(url) ? "&" : "?") + (new Date()).getTime();

このテクニックはXMLHttpRequest以外でもキャッシュ回避の方法として有用です。
また、試験範囲には含まれていませんが、XMLHttpRequestオブジェクトのsetRequestHeaderメソッドを使用し、リクエストヘッダにキャッシュ無効化の設定を埋め込むことでWebブラウザのキャッシュを回避することも可能です。
その他の選択肢、A,CについてはnoCacheというプロパティは存在しません。Dについてはopenメソッドに第5引数は存在しません。

出題範囲の詳細

例題解説の提供:HTML5アカデミック認定校 株式会社クリーク・アンド・リバー社
HTML5レベル2認定者 高井 歩 氏

例題6.3「2.6.1 WebSocket」
レベル2の出題範囲「2.6.1 WebSocket」からの出題です。
ブラウザ(JavaScript)からのWebSocketの接続時において、サーバとの間で認証を行いたい。
認証情報の送信に利用可能な手段をすべて選びなさい。
  • クッキー
  • 任意のHTTPヘッダ
  • WebSocketのサブプロトコル(Sec-WebSocket-Protocolヘッダ)
  • WebSocketの拡張(Sec-WebSocket-Extensionsヘッダ)

※この例題は実際のHTML5プロフェッショナル認定試験とは異なります。

答えはこちら

答え A, C
ブラウザからJavaScriptでWebSocket接続するには、WebSocketオブジェクトを生成するだけでいいのですが、現状、その際に指定できるパラメータはURIとサブプロトコルのリストだけです。
WebSocketの仕様上、任意のヘッダを利用できる、WebSocketの拡張が利用できる、とありますが、現在のJavaScriptのAPIには実装されていません。
他にはクッキーが利用できます。従って、WebSocketの接続における認証で利用できる手段は、現状、サブプロトコルとクッキーに限られます。
もちろん、WebSocket接続後のメッセージのやりとり(messageイベント)の中でも実現可能ですが、メッセージを受信したタイミング全てで認証済みかの判断を入れることになり、コスト増につながります。

出題範囲の詳細

例題解説の提供:
LPI-Japanプラチナスポンサー NECソリューションイノベータ株式会社
武藤 周 氏

例題6.2「2.6 通信」
レベル2の出題範囲「2.6 通信」からの出題です。(WebRTCについては2017年1月現在、出題範囲には含まれていません。)
WebRTCの説明として、間違っているものを全て選択しなさい。
  • カメラやマイクなどのクライアントPCの資産が利用できる。
  • ブラウザ同士で直接(peer to peer)接続ができるため、サーバを必要としない。
  • WebRTCを使えば、ブラウザだけ(プラグインなどの機能拡張なし)で、ビデオチャットアプリケーションが作成できる。
  • WebRTCで扱える通信データは、画像や音声のストリーミングだけである。

※この例題は実際のHTML5プロフェッショナル認定試験とは異なります。

答えはこちら

答え B,D

WebRTCでは、ブラウザ同士の直接接続をネゴシエートするために、事前にお互いの情報をやりとりする必要があるため、サーバは必要です。
お互いの情報を作成/チェックするために、STUNやTURN、ICEなどのIRC関連プロトコルを利用しており、これらのサーバも必要になります。
PCのカメラやマイクから取得した画像や音声のストリーミングだけでなく、DataChannelを利用してピア接続上で双方向通信が行えます。

出題範囲の詳細

例題解説の提供:
LPI-Japanプラチナスポンサー NECソリューションイノベータ株式会社
武藤 周 氏

例題6.1「2.6.1 WebSocket」
レベル2の出題範囲「2.6.1 WebSocket」からの出題です。
WebSocketで扱えるデータについて、間違っているものを全て選択しなさい。
  • WebSocketで扱えるデータはテキストだけである。
  • WebSocketでバイナリデータを送受信したい場合は、BASE64でエンコードして文字列として送受信する必要がある。
  • WebSocketでは、テキストだけでなく、バイナリデータも送受信でき、画像や音楽など様々なデータをサポートしている。
  • WebSocketで送受信可能なデータサイズに特に制限はない。

※この例題は実際のHTML5プロフェッショナル認定試験とは異なります。

答えはこちら

答え A,B,C

WebSocketで扱えるデータは、String、Blob、ArrayBuffer、ArrayBufferViewの4種類である。
バイナリデータを扱えるため、Base64でエンコードして文字列にする必要はありません。
しかし、バイナリデータはBlob、ArrayBuffer、ArrayBufferViewしかないので、画像や音楽などのデータを扱うには独自に実装する必要があります。

送受信可能なデータサイズには、WebSocketの仕様として特に明記されていません。
しかし、実際にはネットワークの許容量やブラウザ、サーバなど、様々な制限が存在します。
また、unsigned longのbufferedAmountプロパティによって未送信のデータ量が制御されています。

出題範囲の詳細

例題解説の提供:
LPI-Japanプラチナスポンサー NECソリューションイノベータ株式会社
武藤 周 氏

このページの先頭へ