商社である A 社では,クラウドサービスを利用して取引先と商品情報の交換を行う Web システムを構築している。Web システムはコンテナ上で稼働する Web アプリケーション及びマイクロサービス群から構成されており,取引先システムから送られてくる刻々と変化する原価情報や,注文情報を扱うため,リアルタイム性の高い通信を必要とすることから,取引先システムとの接続には WebSocket を利用している。図 1 は, A 社 Web システムにおける,取引先システムとの連携のための,WebSocket 通信開始処理である。
A 社が取引先システムへ TLS で接続した際に,次の処理が行われる。
・A 社 Web システムは GET リクエストを送るが,このときのリクエストヘッダに“Upgrade: websocket”と”Connection: Upgrade”を含めることで WebSocket ハンドシェイクを開始する。
・取引先システムが WebSocket を受け入れる場合,応答ヘッダに __a__ を指定した上で,ステータスコードが __b__ である応答が返される。
・A 社 Web システムから Sec-WebSocket-Key として送られた 16 バイトの乱数に対して,取引先システムから Sec-WebSocket-Accept が応答されるが,これは 16 バイトの乱数と特定の固定値を連結して __c__ で計算したハッシュ値である。
図1 取引先システムとの連携のための WebSocket 通信開始処理
A 社 Web システムは,取引先システムとの通信において Sec-WebSocket-Accept で得た値を検証することで,相手システムが __d__ ということが確認できる。
設問 図 1 中の __a__ ~ __c__ ,及び本文中の __d__ に入れる字句の組合せはどれか。
a | b | c | d | |
|---|---|---|---|---|
ア | (一) | (三) | (五) | (七) |
イ | (一) | (三) | (五) | (八) |
ウ | (一) | (三) | (六) | (八) |
エ | (一) | (四) | (五) | (七) |
オ | (一) | (四) | (六) | (八) |
カ | (二) | (三) | (五) | (八) |
キ | (二) | (三) | (六) | (八) |
ク | (二) | (四) | (五) | (七) |
ケ | (二) | (四) | (六) | (七) |
コ | (二) | (四) | (六) | (八) |