ウェブエンジニア問題集
第4.4章

HTTP/HTTPSとWeb APIへの接続 — ネットワーク上の位置づけ

5
この章の目次開く

HTTPは、WebブラウザとWebサーバーがリクエストとレスポンスをやりとりするためのプロトコルです。

ただし、この本ではHTTPの詳細を深掘りしすぎません。メソッド、ステータスコード、ヘッダー、Cookie、REST API設計は HTTPとWeb API の本で扱っています。この章では、HTTP/HTTPSを ネットワーク全体の中でどこに位置づくか に絞って整理します。

HTTPはアプリケーション層のプロトコル

HTTPは、TCPやQUICの上で動くアプリケーション層のプロトコルです。

HTTPリクエスト

TLSで暗号化

TCP または QUIC

IP

Ethernet / Wi-Fi

HTTP自体は「どのURLに対して、どんな操作をしたいか」「結果は成功か失敗か」「レスポンスの中身は何か」を表現します。

GET /users/1 HTTP/1.1
Host: api.example.com
Accept: application/json
http
HTTP/1.1 200 OK
Content-Type: application/json
 
{"id":1,"name":"Alice"}
http

HTTPSはHTTPをTLSで守る

HTTPSは、HTTPを TLS で暗号化したものです。

HTTPHTTPS
暗号化なしあり
既定ポート80443
改ざん検知弱いあり
本番利用非推奨必須

HTTPSでは、サーバー証明書によって「接続先が本当にそのドメインのサーバーか」を確認し、通信内容を暗号化します。Cookie、認証トークン、フォーム入力、APIレスポンスを守るため、本番環境ではHTTPSが必須です。

HTTP/1.1、HTTP/2、HTTP/3

HTTPには複数のバージョンがあります。

バージョン下の層特徴
HTTP/1.1TCP広く使われる基本形。1接続での並列性に制限がある
HTTP/2TCP多重化、ヘッダー圧縮などで効率化
HTTP/3QUIC(UDP)接続確立やパケットロス時の影響を改善

Web開発者として最初に重要なのは、バージョンごとの細かい仕様よりも、HTTP/3だけはTCPではなくQUICの上で動く という点です。

学習者学習者

HTTP/1.1とHTTP/2とHTTP/3って、Web開発者としてはどれを意識すればいいの?

先生先生

Web開発者がまず押さえるべきはHTTPのリクエスト/レスポンスの仕組み。バージョンの違いはCDNやサーバー設定の話で、アプリケーションコードはほぼ変わらないよ。

HTTPの仕組みを学ぶ
HTTPの詳細はHTTPとWeb API本で体系的に学べる

Web APIの詳細は別の本で扱う

HTTPを使ってJSONをやりとりするAPIが、一般にWeb APIと呼ばれます。

この先を学ぶなら、次のページが対応します。

知りたいこと参照先
URLを入力してから表示までWebの仕組み
GET/POST/PUT/DELETEHTTPメソッド
200/404/500などステータスコード
ヘッダー、Cookie、キャッシュヘッダーとCookie
REST API設計REST API設計
JSONJSONとデータ形式
プロキシプロキシ

ちゃんと使うためのポイント

  • HTTPはアプリケーション層のプロトコル
  • HTTPSはHTTPをTLSで暗号化したもの
  • 本番環境ではHTTPSが必須
  • HTTP/1.1とHTTP/2はTCP、HTTP/3はQUICの上で動く
  • HTTPメソッド、ステータスコード、ヘッダー、Cookie、API設計は HTTPとWeb API で詳しく扱う

次の章では、リモートサーバーへ安全に接続する SSHと公開鍵認証 を扱います。

CS基礎クイズに挑戦するこの章で学んだCS基礎の知識を、4択クイズでアウトプットして定着させよう