第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-FiHTTP自体は「どのURLに対して、どんな操作をしたいか」「結果は成功か失敗か」「レスポンスの中身は何か」を表現します。
GET /users/1 HTTP/1.1
Host: api.example.com
Accept: application/jsonhttp
HTTP/1.1 200 OK
Content-Type: application/json
{"id":1,"name":"Alice"}http
HTTPSはHTTPをTLSで守る
HTTPSは、HTTPを TLS で暗号化したものです。
| HTTP | HTTPS | |
|---|---|---|
| 暗号化 | なし | あり |
| 既定ポート | 80 | 443 |
| 改ざん検知 | 弱い | あり |
| 本番利用 | 非推奨 | 必須 |
HTTPSでは、サーバー証明書によって「接続先が本当にそのドメインのサーバーか」を確認し、通信内容を暗号化します。Cookie、認証トークン、フォーム入力、APIレスポンスを守るため、本番環境ではHTTPSが必須です。
HTTP/1.1、HTTP/2、HTTP/3
HTTPには複数のバージョンがあります。
| バージョン | 下の層 | 特徴 |
|---|---|---|
| HTTP/1.1 | TCP | 広く使われる基本形。1接続での並列性に制限がある |
| HTTP/2 | TCP | 多重化、ヘッダー圧縮などで効率化 |
| HTTP/3 | QUIC(UDP) | 接続確立やパケットロス時の影響を改善 |
Web開発者として最初に重要なのは、バージョンごとの細かい仕様よりも、HTTP/3だけはTCPではなくQUICの上で動く という点です。
学習者HTTP/1.1とHTTP/2とHTTP/3って、Web開発者としてはどれを意識すればいいの?
先生Web開発者がまず押さえるべきはHTTPのリクエスト/レスポンスの仕組み。バージョンの違いはCDNやサーバー設定の話で、アプリケーションコードはほぼ変わらないよ。

Web APIの詳細は別の本で扱う
HTTPを使ってJSONをやりとりするAPIが、一般にWeb APIと呼ばれます。
この先を学ぶなら、次のページが対応します。
| 知りたいこと | 参照先 |
|---|---|
| URLを入力してから表示まで | Webの仕組み |
| GET/POST/PUT/DELETE | HTTPメソッド |
| 200/404/500など | ステータスコード |
| ヘッダー、Cookie、キャッシュ | ヘッダーとCookie |
| REST API設計 | REST API設計 |
| JSON | JSONとデータ形式 |
| プロキシ | プロキシ |
ちゃんと使うためのポイント
- HTTPはアプリケーション層のプロトコル
- HTTPSはHTTPをTLSで暗号化したもの
- 本番環境ではHTTPSが必須
- HTTP/1.1とHTTP/2はTCP、HTTP/3はQUICの上で動く
- HTTPメソッド、ステータスコード、ヘッダー、Cookie、API設計は HTTPとWeb API で詳しく扱う
次の章では、リモートサーバーへ安全に接続する SSHと公開鍵認証 を扱います。
CS基礎クイズに挑戦するこの章で学んだCS基礎の知識を、4択クイズでアウトプットして定着させよう
