HTTPによる通信の流れに関するネットワークスペシャリスト試験
了解です。
以下に HTTPによる通信の流れ に関するネットワークスペシャリスト試験問題を、
従来の形式(択一問題+正解+解説+穴埋め+誤文訂正)で10問作成しました。
HTTPリクエストからレスポンスまでの処理順や内部動作を問う内容になっています。
---
HTTPによる通信の流れに関する問題(全10問)
---
問題1
HTTP通信でクライアントが最初に行う動作はどれか。
A. HTTPリクエスト送信
B. TCPコネクション確立
C. DNS名前解決
D. TLSハンドシェイク
【正解】 C
【解説】
HTTP通信では、まずサーバのホスト名をIPアドレスに変換するためにDNS名前解決を行う。
【穴埋め】
HTTP通信開始前には、まず ________ によってホスト名からIPアドレスを取得する。
→ DNS名前解決
【誤文訂正】
HTTP通信は最初にHTTPリクエストを送信する。
→ 正しくは最初にDNS名前解決を行う。
---
問題2
HTTP/1.1でTCPコネクションを確立する際に使用されるポート番号の標準はどれか。
A. 20
B. 21
C. 80
D. 443
【正解】 C
【解説】
HTTP/1.1の標準ポートは80。HTTPSは443を使用する。
【穴埋め】
HTTP/1.1のデフォルトポート番号は ________ である。
→ 80
【誤文訂正】
HTTP/1.1のデフォルトポート番号は443である。
→ 正しくは80である。
---
問題3
HTTPS通信でHTTPリクエスト送信前に行われるのはどれか。
A. TLSハンドシェイク
B. コンテンツ圧縮
C. HTTPヘッダ圧縮
D. Chunked転送
【正解】 A
【解説】
HTTPSでは、HTTPデータを暗号化する前にTLSハンドシェイクで暗号化方式と鍵交換を行う。
【穴埋め】
HTTPSではHTTPデータ送信前に ________ を実施する。
→ TLSハンドシェイク
【誤文訂正】
HTTPSではHTTPデータ送信前にChunked転送を行う。
→ 正しくはTLSハンドシェイクを行う。
---
問題4
HTTPリクエストの送信後、サーバが最初に返す情報はどれか。
A. ボディデータ
B. ステータスラインとレスポンスヘッダ
C. Cookie情報のみ
D. HTTPバージョン情報のみ
【正解】 B
【解説】
サーバはHTTPレスポンスの最初にステータスラインとヘッダを返し、その後にボディを返す。
【穴埋め】
HTTPレスポンスは ________ と ________ が先に送られ、その後にボディが送られる。
→ ステータスライン、レスポンスヘッダ
【誤文訂正】
HTTPレスポンスはボディデータから送られる。
→ 正しくはステータスラインとレスポンスヘッダが先。
---
問題5
HTTP/1.1のConnection: keep-aliveヘッダの目的はどれか。
A. TCP接続を維持し複数リクエストを同一接続で処理する
B. サーバをスリープ状態に保つ
C. リクエストヘッダを暗号化する
D. HTTPバージョンを固定する
【正解】 A
【解説】
keep-aliveによりTCP接続を維持し、複数リクエスト・レスポンスを同一接続で送受信できる。
【穴埋め】
keep-aliveは同一 ________ 接続で複数リクエストを処理できる。
→ TCP
【誤文訂正】
keep-aliveはHTTPバージョンを固定する機能である。
→ 正しくはTCP接続を維持する機能である。
---
問題6
HTTPレスポンスにおいて、Content-Lengthヘッダが省略されることが多いケースはどれか。
A. HTTP/1.0の全ての通信
B. Transfer-Encoding: chunkedを使用する場合
C. GETリクエスト時
D. ステータスコードが200の場合
【正解】 B
【解説】
chunked転送はデータ長を事前に指定せず、チャンク単位で送信するためContent-Lengthが不要。
【穴埋め】
Transfer-Encoding: chunkedでは ________ ヘッダは不要となる。
→ Content-Length
【誤文訂正】
Transfer-Encoding: chunkedではUser-Agentヘッダが不要となる。
→ 正しくはContent-Lengthヘッダが不要となる。
---
問題7
HTTPの3xx系ステータスコードの目的はどれか。
A. リソース移動やリダイレクト
B. クライアントエラー
C. サーバエラー
D. 成功応答
【正解】 A
【解説】
3xx系コードはリソースの移動やリダイレクトの指示を行う。
【穴埋め】
HTTPの3xx系コードはリソースの ________ や ________ を示す。
→ 移動、リダイレクト
【誤文訂正】
3xx系コードはクライアントエラーを示す。
→ 正しくはリソース移動やリダイレクトを示す。
---
問題8
HTTP通信でサーバがコンテンツの種類を示すために使用するヘッダはどれか。
A. Content-Encoding
B. Content-Type
C. Accept-Encoding
D. Accept-Language
【正解】 B
【解説】
Content-TypeはコンテンツのMIMEタイプを示す(例:text/html)。
【穴埋め】
コンテンツの種類はHTTPヘッダの ________ で示される。
→ Content-Type
【誤文訂正】
コンテンツの種類はAccept-Encodingで示される。
→ 正しくはContent-Typeで示される。
---
問題9
HTTP通信の終了はどのように行われるか。
A. HTTP専用の終了コマンドを送る
B. TCPコネクションの終了(FIN/ACK)
C. サーバのプロセスを停止
D. Content-Lengthをゼロにする
【正解】 B
【解説】
HTTPはトランスポート層にTCPを使用しており、終了時はTCPのFIN/ACKによるコネクション解放が行われる。
【穴埋め】
HTTP通信終了時は ________ のFIN/ACKで接続を終了する。
→ TCP
【誤文訂正】
HTTP通信終了時はHTTP専用の終了コマンドを送信する。
→ 正しくはTCPのFIN/ACKで終了する。
---
問題10
HTTP/2で1つのTCPコネクション上に複数のストリームを多重化できる理由はどれか。
A. バイナリフレーム構造とストリームIDの採用
B. 各ストリームごとに別のTCPポートを使用
C. UDPベースの通信方式採用
D. HTML5の仕様変更
【正解】 A
【解説】
HTTP/2はバイナリフレームとストリームIDにより、同一TCPコネクション内で複数の通信を並行処理可能。
【穴埋め】
HTTP/2は ________ と ________ により1コネクションで多重化を実現する。
→ バイナリフレーム構造、ストリームID
【誤文訂正】
HTTP/2はUDPベースの通信方式により多重化を実現する。
→ 正しくはバイナリフレームとストリームIDによる多重化である。
---
この10問を午後Ⅰ形式のキャプチャ解析問題や午後Ⅱの長文シナリオ問題に発展させれば、HTTP通信の流れ全体を試験レベルで網羅できます。
希望があれば、この10問を元に パケットキャプチャ付き午後Ⅰ問題 と 長文シナリオ午後Ⅱ問題 に変換して作りますが、その形にしますか?
コメント
コメントを投稿