対象試験と出題頻度

HTTP(HyperText Transfer Protocol)は、ITパスポート・基本情報技術者・応用情報技術者のすべてで出題されるテーマです。

ポート番号、リクエストメソッド(GET/POST)、ステータスコード、HTTP/2のストリーム多重化など、出題の切り口が多く、特にHTTP/1.1とHTTP/2の違いはAP午後問題でも本格的に問われています。

FE 科目Aサンプル問題 問29、AP R1秋 午後問5、AP R7春 午前問36など、幅広い試験区分・試験形式で繰り返し出題されています。

詳細をクリックして確認
対象試験:
ITパスポート
基本情報技術者
応用情報技術者
出題頻度:
★★★★☆
ランクA(重要)必ず覚えておくべき

用語の定義

情報処理試験を勉強していると、「HTTPは知ってるけど、HTTP/2やHTTP/3って何が違うの?」と混乱しがちです。

HTTP(HyperText Transfer Protocol)とは、一言で言うと

 「WebブラウザとWebサーバの間でHTML文書や画像などのデータをやり取りするための通信規約(プロトコル)」

のことです。

 

イメージとしては、「レストランでの注文のやり取り」です。

 

お客さん(ブラウザ)が「メニューのAをください」と注文(リクエスト)し、店員(サーバ)が「Aをお持ちしました」と料理を提供(レスポンス)する。この「注文→提供」の手順を定めたルールがHTTPです。

 

HTTP/2やHTTP/3は、この注文の仕方をより速く・効率的にするために進化したバージョンと考えてください。

📊 HTTP / HTTP/2 / HTTP/3 の基本情報

項目 内容
正式名称 HyperText Transfer Protocol
ポート番号 HTTP=80/TCP、HTTPS=443/TCP
OSI参照モデル アプリケーション層(第7層)
RFC HTTP/1.1=RFC 9112 / HTTP/2=RFC 9113 / HTTP/3=RFC 9114

詳細解説

Webが誕生した1990年代初頭、ページの内容はテキスト中心で画像も少なく、ブラウザとサーバが1往復のやり取りをするだけで十分でした。しかし、動画・画像・スクリプトを大量に含む現代のWebページでは、通信効率が大きな課題になっています。

 

HTTPは、この課題に対応するために「HTTP/1.0 → HTTP/1.1 → HTTP/2 → HTTP/3」と段階的に進化してきました。

 

HTTP/1.1 — Webの標準を長く支えた基盤

HTTP/1.0では、リクエストごとにTCPコネクションを接続→切断していたため、画像を10枚読み込むなら接続処理も10回必要でした。

HTTP/1.1では「Keep-Alive(持続的接続)」が標準となり、1つのTCPコネクションを維持したまま複数のリクエストを送れるようになりました。

 

ただし、HTTP/1.1には「1つのコネクション上では前のレスポンスが返るまで次のリクエストを処理できない」というHoL(Head-of-Line)ブロッキングの問題があります。

ブラウザはこの制約を回避するために、同じサーバに対して同時に4〜6本のTCPコネクションを張る実装で対処していましたが、サーバ側のソケット資源を大量に消費する副作用がありました。

 

HTTP/2 — ストリーム多重化による高速化

HTTP/2は2015年にRFC 7540として標準化されました(現在はRFC 9113に改定)。

最大の特徴は「ストリーム多重化」です。1つのTCPコネクションの中に仮想的な通信路(ストリーム)を複数作成し、リクエストとレスポンスを並行して処理できます。

 

前述のHoLブロッキングはアプリケーション層では解消されましたが、TCP層での問題は残っています。TCPは1本のコネクション上でパケットの順序を保証するため、途中のパケットが1つでもロスすると後続のすべてが待たされます。

 

そのほか、ヘッダ圧縮(HPACK)やサーバプッシュ(サーバ側から先回りでリソースを送信する仕組み)も導入されました。

 

HTTP/3 — TCPからQUICへの転換

HTTP/3は2022年にRFC 9114として標準化されました。最大の変更点は、下位プロトコルがTCPからQUIC(Quick UDP Internet Connections)に置き換わったことです。

QUICはUDP上に構築された新しいトランスポートプロトコルで、ストリームごとに独立した順序制御を持つため、TCP層のHoLブロッキングが完全に解消されます。

 

さらに、QUICはTLSハンドシェイクをプロトコル内部に統合しており、TCPの3ウェイハンドシェイク+TLSハンドシェイクという二段構えが不要になります。接続確立にかかるラウンドトリップが削減され、体感速度が向上します。

 

3バージョンの比較

項目 HTTP/1.1 HTTP/2 HTTP/3
下位プロトコル TCP TCP QUIC(UDP上)
多重化 不可(1リクエスト/1レスポンスが基本) ストリーム多重化 ストリーム多重化(HoLブロッキング完全解消)
ヘッダ圧縮 なし HPACK QPACK
暗号化 任意(HTTPSは別途TLS) 事実上HTTPS必須 QUIC内にTLS 1.3を統合(常時暗号化)
RFC RFC 9112 RFC 9113 RFC 9114

HTTPリクエストとレスポンスの基本構造

バージョンに関わらず、HTTPの通信は「リクエスト(要求)」と「レスポンス(応答)」の一往復で成り立ちます。

 

リクエストメソッド:ブラウザがサーバに送る「何をしてほしいか」の指示です。GETはリソースの取得、POSTはデータの送信を意味します。ほかにPUT(更新)やDELETE(削除)もありますが、試験で問われるのはGETとPOSTが中心です。

 

ステータスコード:サーバがブラウザに返す「処理結果」の3桁の番号です。200番台は成功、300番台はリダイレクト、400番台はクライアントエラー(404=ページ未検出)、500番台はサーバエラーを意味します。SG H29春 問46で出題実績があります。

 

では、この用語が試験でどのように出題されるか見ていきましょう。

💡 HTTP / HTTP/2 / HTTP/3 の核心を3行で

・HTTPはWebの通信規約。ポート番号はHTTP=80、HTTPS=443
・HTTP/2はストリーム多重化で1つのTCPコネクション上に複数リクエストを並行処理
・HTTP/3はQUIC(UDP上)を採用し、TCP層のHoLブロッキングと接続遅延を解消


試験ではこう出る!

HTTPは出題の切り口が多い用語です。バージョンごとの違いだけでなく、ポート番号やリクエストメソッド、セキュリティとの組み合わせなど、さまざまな角度から問われます。

出題パターンは大きく4つに分かれます。

📊 過去問での出題実績

試験回 出題内容 問われたポイント
FE 科目A
サンプル 問29
PCとWebサーバがHTTPで通信しているとき、戻りパケットのポート番号の組合せを問う問題。 ・HTTPの宛先ポート番号は80
・戻りパケットでは送信元と宛先が入れ替わる
AP R1秋
午後 問5
HTTP/2を題材にしたネットワークの大問。TCPコネクション確立手順(SYN→SYN/ACK→ACK)、ソケットの枯渇、ストリームによる多重化が出題。 ・HTTPSのポート番号は443
・HTTP/2はストリームで並行ダウンロードを実現
AP R7春
午前 問36
HTTPリクエストヘッダーのログから、悪用が疑われる脆弱性(OSコマンドインジェクション)を推測する問題。 ・GETリクエストのパラメータ部分に不正なコマンドが含まれるパターン
SG H29春
問46
HTTPレスポンスのステータスコードに関する問題。 ・200番台=成功、300番台=リダイレクト
・400番台=クライアントエラー、500番台=サーバエラー

📝 IPA試験での出題パターン

パターン1:「ポート番号を問う」
HTTP=80、HTTPS=443。これはIP/FE/APすべてで定番。プロキシサーバ経由の場合に宛先が8080になるパターンもFEで出題されている。

 

パターン2:「リクエストメソッドの違いを問う」
GET(リソース取得)とPOST(データ送信)の使い分けが中心。AP午前〜午後で出題。GETはURLにパラメータが含まれ、POSTはボディ部にデータを格納する点が区別ポイント。

 

パターン3:「HTTP/1.1とHTTP/2の違いを問う」
AP午後のネットワーク問題で本格的に出題。Keep-Alive、ストリーム多重化、ソケットの消費量の違いなどが問われる。

 

パターン4:「HTTPヘッダやステータスコードとセキュリティの組み合わせ」
HTTPリクエストヘッダの不審なパラメータからインジェクション攻撃を推測する問題。AP R7春 午前問36が典型。

 

HTTP/3(QUIC)については、FE/APのシラバスに記載はあるものの、本格的な出題実績はまだ少ないです。「TCPではなくUDP上で動作する」「TLSが統合されている」という2点を押さえておけば十分です。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。


Q. HTTP/2の特徴として、最も適切なものはどれでしょうか?

  • A. 1つのTCPコネクション上にストリームと呼ばれる仮想的な通信路を複数作成し、リクエストとレスポンスを並行して処理できる。
  • B. 下位プロトコルをTCPからQUIC(UDP上)に変更し、TCP層のHoLブロッキングを完全に解消した。
  • C. リクエストごとにTCPコネクションを接続・切断するため、サーバ側の処理が軽量になった。

正解と解説を見る

正解:A

解説:
HTTP/2の最大の特徴は、1つのTCPコネクション上でストリーム多重化を実現し、複数のリクエスト・レスポンスを並行処理できる点です。

選択肢BはHTTP/3の説明です。下位プロトコルをQUIC(UDP上)に変更したのはHTTP/3であり、HTTP/2は引き続きTCPを使用します。選択肢CはHTTP/1.0に近い動作であり、HTTP/1.1以降はKeep-Aliveによる持続的接続が標準です。リクエストごとにコネクションを張り直すのは非効率であり、HTTP/2の特徴とは正反対です。


よくある質問(FAQ)

Q. HTTPとHTTPSは何が違いますか?

HTTPSは、HTTPの通信内容をTLS(Transport Layer Security)で暗号化したものです。ポート番号はHTTPが80、HTTPSが443です。現在のWebサイトはHTTPSが標準であり、ブラウザのアドレスバーに鍵マークが表示されていればHTTPS通信が行われています。試験ではポート番号の違い(80 vs 443)と「通信内容が暗号化されているかどうか」が問われます。

Q. Cookieとは何ですか?HTTPとどう関係しますか?

HTTPは本来「ステートレス(状態を持たない)」なプロトコルで、リクエストごとに前回の通信内容を覚えていません。Cookieは、サーバがブラウザに小さなデータを保存させ、次回のリクエスト時にそのデータを送り返してもらうことで、ログイン状態の維持やショッピングカートの保持を実現する仕組みです。IP H28春 問79などで出題実績があります。

Q. HTTP/2の「サーバプッシュ」とは何ですか?

ブラウザからのリクエストを待たずに、サーバ側が「このHTMLにはこのCSSと